字元編碼及檔案處理
# 文字編輯器的輸入與輸出是兩個過程 輸入(人能看懂的字元)>>>(字元編碼表)>>>二進位制數字(計算機能識別的)
# 字元編碼表就是字元與數字的對應關係
字元編碼表:
1. ascii碼表:八位二進位制表示乙個英文本元(所有的英文本元+符號也就125位左右)
# 八位二進位制也叫8bit(******)
# 8bit = 1 bytes
# 1024 bytes = 1 kb
# 1024 kb = 1 mb
# 1024 mb = 1 gb
# 1024 gb = 1 tb
# 1024 tb = 1 pb
2. gbk:用2個bytes表示乙個中文字元,1個bytes表示乙個英文本元(十六位二進位制,所以最多能表示65535個字元)
此外還有日本及南韓的字元編碼表。
任何乙個國家想讓計算機支援本國語言都必須建立乙個字元與數字的對應關係,所以:萬國碼(unicode):統一用2個bytes表示所有的字元。
當輸入時,在記憶體中經過unicode編碼後同一編碼成utf-8格式(unicode transformation formate)存入硬碟;編碼後的英文本元由原來的2bytes變成1bytes,中文字元由2bytes變成3bytes
*************現在計算機記憶體都是unicode,硬碟都是utf-8**********************
uincode的特點:
①使用者在輸入的時候,無論什麼字元都能夠相容萬國字元
②其他國家編碼的資料由硬碟讀取到記憶體中的時候unicode與其他各個國家的編碼都有對應關係
************************************(重點)保證不亂碼關鍵在於檔案以什麼編碼就以什麼解碼******************
①資料由記憶體儲存到硬碟:
記憶體中的unicode格式二進位制數字》編碼(encode)>>>utf-8格式的二進位制
②資料由硬碟讀取到記憶體:
硬碟中的utf-8格式的二進位制資料》解碼(decode)>>>記憶體中的unicode格式
ps:python2預設ascii碼,python3預設utf-8
******pycharm終端用的是utf-8格式,windows終端用的是gbk格式*****
檔案:1. 什麼是檔案?
檔案是作業系統提供給使用者操作複雜硬體(硬碟)的簡易的介面
2. 為什麼操作檔案?
人或者應用程式需要永久儲存資料
3. 檔案的操作使用:包括open/read/close
f.read() # 表示向系統傳送請求,讀取檔案內容
print(f.read()) # 列印f檔案的內容
f.close() # 告訴系統,關閉開啟的檔案
快捷方式:
with open(r'檔案位址(路徑)',encoding = 'utf-8') as f,\ open(r'檔案位址(路徑)',encoding = 'utf-8') as f1
:# 可同時開啟多個檔案 斜體藍色部分表示可以同時開啟多個檔案
4. 檔案開啟的模式及操作檔案單位的方式:
模式:① r 模式:唯讀模式
如:with open(r'路徑',mode = 'r' , encoding = 'utf-8') as f :
表示r模式下檔案只可以讀,不可以寫,並且是一次性將檔案內容全部讀出。
print(f.readlines()) # 列印出檔案中的一行行內容,返回的是乙個列表(是一行行的讀取,原理也是for迴圈,因此可解決大檔案一次性讀取占用記憶體過高的問題)
print(f.readline()) # 列印檔案的一行內容
ps:在開啟檔案的時候,如果檔案不存在,直接報錯;檔案路徑可以寫相對路徑,但是該檔案必須與執行檔案在同一層檔案下
② w模式:只寫模式(慎用)
w模式下檔案不可以讀,只可以寫。但是此模式下,當檔案不存在,則自動建立該檔案;當檔案存在情況下,則先清空檔案內容再寫入。
③ a 模式:追加模式
a模式下,檔案可讀可寫。此模式下,當檔案不存在,則自動建立該檔案;當檔案存在情況下,不清空檔案內容,檔案的游標會移動到檔案最後,進行內容的新增。
with open(r'路徑',mode = 'r',encoding = 'utf-8') as f :
with open(r'路徑', 'r',encoding = 'utf-8') as f :
假如不是唯讀模式,則需要加上
b代表二進位制,此情況下不能指定encoding引數,如:
with open(r'路徑','rb') as f :
with open(r'路徑','wb') as f :
with open(r'路徑','ab') as f :
字元編碼和檔案處理
檔案處理 應用程式任何操作硬體的請求都需要向作業系統發起系統呼叫,然後由操作做系統去操作硬體 1.開啟了編輯器就開啟了啟動了乙個程序,是在記憶體中的,所以,用編 輯器編寫的內容也都是存放與記憶體中的,斷電後資料丟失。2.要想永久儲存,需要點選儲存按鈕 編輯器把記憶體的資料刷到了硬碟 上。3.在我們編...
字元編碼及檔案操作
寫 和做人一樣,從前往後看的時候,往往會看不明白,但是,如果站在結果,去看過往,一切都是如此的清澈透明,完全可以理解和接受.人生可以有遺憾,但是,不能有bug.哈哈.扯遠了,繼續講 字元編碼與檔案操作息息相關.因為在檔案操作中,要判斷游標 指標 的位置,就需要用不同的模式,而每個模式下,因為使用的方...
Python 字元編碼與檔案處理
目前計算機記憶體的字元編碼都是unicode,目前國內的windows作業系統採用的是gbk。python2預設的字元編碼方式是ascii python3預設的字元編碼方式是unicode py檔案頭部的 coding utf 8是幫助python識別.py檔案的編碼方式,故在寫.py檔案時要注意檔...