b代表位元組bytes模式即位元組模式。
以b模式讀取檔案時不能指定encoding,因為已近要求以位元組的模式開啟,但可以在開啟並讀取資料後解碼。
字串通過編碼變為bytes,bytes通過解碼變為字串。
轉為bytes的兩種方式:
位元組模式存在的意義:a =
bytes
("被轉內容"
, encoding=
"utf8"
)b =
"被轉內容"
.encode(
"utf8"
(a, b)
1.open語句預設以t的方式開啟檔案,即"rt"、「wt」、"at"的方式開啟檔案,如果檔案不是文字形式的資料則無法以t的方式開啟,但是可以以位元組模式開啟。
2.位元組資料可以跨平台傳輸和處理。
3.b模式對linux系統的作用不大,因為linux系統預設就是以位元組的方式處理資料的,對windows系統作用較大。
例項
位元組模式的讀取
讀取出來的是位元組形式,想要得出位元組對應的內容則必須指定解碼方式。
位元組模式的寫入#當前目錄下有test1.py檔案且檔案有內容
f =open
("test1.py"
,"rb"
)data = f.read(
(data)
(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(
)
python檔案處理b模式
執行環境 windows python3.5 1 rb模式,從檔案中讀取內容,得到的是bytes型別 因為我們使用的是b模式,所以在open函式中不能指定編碼格式,所以列印出來的格式的二進位制的格式,而我們需要得到str型別 這裡我們講一下,一種簡便方法,來檢視檔案的編碼格式。雙擊右下角是可以更改編...
檔案處理b模式與檔案操作的其它方法
檔案處理b模式 f open 笑納 rb encoding utf 8 b的方式不能指定編碼,位元組的形式讀取 f open 笑納 rb data f.read 在win系統中,換行其實是 r n linux系統是 n 字串 encode 位元組 位元組 decode 字串 print data.d...
檔案的操作模式 x模式和b模式
演示1 with open a.txt mode x encoding utf 8 as f pass 增加新空檔案 a.txt 演示2 with open c.txt mode x encoding utf 8 as f f.read 增加新空檔案 c.txt 報錯 演示3 with open d...