1. 程式人生 > 其它 >字元編碼介紹和檔案的簡單操作

字元編碼介紹和檔案的簡單操作

目錄

一.字元編碼表的簡單介紹

1.字元編碼只針對文字檔案

二.字元編碼發展史介紹

1.一家獨大:
首先計算機是美國人發明的,所以一開始就只考慮到了英文字元和數字所對應.
最開始是ASCII碼錶:用來記錄英文和數字所對應關係
     1bytes(8beit)來表示英文
     A-Z:65-90
     a-z:97-122
2.群雄割據:
當計算機風靡其他很多國家的時候,面對了同樣的問題因為,因為只有英文和數字所對應的關係所以各個國家都開始編寫字元編碼表
中國:GBK
日本:shift_Jis
韓國:Euc_kr
"""所有不同國家或者型別編碼表他跨國翻譯只能程式設計亂碼形式"""
3.天下統一
慢慢隨著科技的發展所以計算機也跟著發展跨國貿易等交易開始陸續進行但是因為編碼表的不同往往會出現亂碼形式,這時候出現了統一形式的編碼表:
uniccode:稱為:萬國碼  
同時還修改了字元儲存空間
utf8:轉換版本:萬國碼
同樣也修改了字元儲存空間
"""我們使用的計算機記憶體用的通常是unicode通用的萬國碼
但是我們的硬碟使用的是utf8轉換版"""

三.字元編碼應用

1.編碼:將人類能讀懂的字元編碼編譯成計算機可以直接讀懂的字元編碼
2.解碼:將計算機能夠直接讀懂的字元編碼解釋成人類可以讀懂的字元編碼
"""我們輸入的是字元計算機眼裡其實就都是二進位制的數字通過組合拼接才能顯示, 同樣的道理計算機把一串二進位制的數字組合拼接然後翻譯成人類可以看懂的字元"""
3.亂碼:在正常顯示和非正常顯示的資料,你用的是編碼就要用對應的解碼即可
"""
--python直譯器層面:
1.在python2中:直譯器預設的編碼是ASCII碼因為那時候還沒有萬國碼.所以要在他檔案的最上方標註# coding:utf8來進行一個編碼的轉換
2.在python3中:直譯器不用編碼轉換因為預設為:utf8
"""

四.檔案操作簡單介紹

1.檔案的概念:
什麼是檔案:其實就是作業系統暴漏給使用者可以直接操作硬碟的快捷方式
2.操作流程:
2.1開啟.建立  2.2編輯檔案的內容  2.3儲存檔案  2.4關閉檔案
3.檔案的基本語法結構:
結構1. f1 = open()
      f1.close()
結構2. wist open() as f:
       ...{...和pass語法結構是相同的可以執行但是內部什麼都沒有}
# open(r'a.txt') 相對路徑[根據地址來找資料] (r.去除特殊所包含的含義)
# open(r'D:\pathon\a.txt') 絕對路徑[不用根據地址可以直接找到資料]
# l1 = open(r'a,txt''r',encoding='utf8')
open:(檔案的路徑)
r:(檔案的操作模式)
encoding:(編碼的形式)
utf8:(轉化版本的萬國碼)
因為close是結束所以在python中可以:
# With open(r'a,txt''r',encoding='utf8')as:f   
data = f.rean
print(data)

五.檔案的讀寫功能

r = read :只能模式:只讀不能寫
w = write :只能寫模式:只寫不能讀
a = append :只追加模式:在檔案末尾追加新的內容

r模式結構:
路徑不存在:直接報錯
路徑存在:正常開啟後讀取相應的內容
w模式結構:
路徑不存在:自動建立新的檔案
路徑存在:會清空檔案內所有內容然後從新寫入
a模式結構:
路徑不存在:自動建立新的檔案
路徑存在:他就不會清空檔案內容只能在末尾追加你寫的新內容

六.檔案操作模式

文字模式是預設模式
r  rt
w  wt
a  at
t模式:
1.該模式只能操作文字檔案
2.該模式必須有encoding(編碼)引數
3.該模式讀寫都是以字串為最小單位
b模式:
文字模式是預設模式
r  rb
w  wb
a  ab
B模式:
1.該模式可以操作任何資料型別檔案(任何)
2.該模式不需要encoding(編碼)為引數
3.該模式讀寫都以bytes(位元位也就是而二進位制0101)型別為最小單位

七.檔案的內建方法

1.read() # 一次性讀取完內容
2.readline() # 一次只讀取一行內容
3.readlines() # 判斷當前檔案是否可讀
"""注:read缺點如果一次性讀取完畢那麼如果資料較多那麼可以會對記憶體產生影響但是一次一行又顯的太慢所以支援用for迴圈來讀取內容:for迴圈:for 變數名 in 資料 分別提出檔案裡的元素一行一行顯示並且能一次性讀完還不出現溢位等問題"""
4.write() # 寫入檔案內容
5.writelines() # 可以將列表中的多個元素寫入檔案內
6.writable() # 判斷檔案是否可以寫入
7.flush() # 儲存