1. 程式人生 > >檔案處理的b模式

檔案處理的b模式

b代表位元組bytes模式即位元組模式。

以b模式讀取檔案時不能指定encoding,因為已近要求以位元組的模式開啟,但可以在開啟並讀取資料後解碼。

字串通過編碼變為bytes,bytes通過解碼變為字串。

位元組模式存在的意義:
1.open語句預設以t的方式開啟檔案,即"rt"、“wt”、"at"的方式開啟檔案,如果檔案不是文字形式的資料則無法以t的方式開啟,但是可以以位元組模式開啟。
2.位元組資料可以跨平臺傳輸和處理。
3.b模式對Linux系統的作用不大,因為Linux系統預設就是以位元組的方式處理資料的,對Windows系統作用較大。


例項

位元組模式的讀取
讀取出來的是位元組形式,想要得出位元組對應的內容則必須指定解碼方式。

#當前目錄下有Test1.py檔案且檔案有內容
f = open("Test1.py", "rb")
data = f.read()
print(data)
print(data.decode("utf8")
f.close()

位元組模式的寫入
寫入的內容必須是位元組的形式,利用bytes()函式或字串的.encode()方法都可以將目標字串轉化為編碼。

f = open("Test2", "wb")
f.write(bytes("Hello\n", encoding="utf8"))
f.write("實驗內容".encode("utf8"))
f.close()

位元組模式的追加
同位元組寫模式要求相同,只是追加在檔案末尾。

#當前目錄下有Test3檔案且檔案有內容
f = open("Test3", "ab")
f.write("實驗實驗實驗".encode("utf8"))
f.close()