第3條瞭解bytes、str和unicode的區別

1.Python3的字符類型

Python3中有兩種表示字符序列的類型:

  • str:包含Unicode字符
  • bytes:包含原始8位

而Python2也有兩種表示字符序列的類型:

  • str:包含原始8位
  • unicode:代表Unicode編碼

需要注意的是,Python2和Python3的Unicode和str實例都沒有和特定的二進制編碼相關聯,因此想要把Unicode字符轉換成二進制數據,必須使用encode方法,而將二進制轉換成Unicode需要使用decode方法。

Python3的文件讀取方式

Python3中open()函數含有encoding參數,默認值’utf-8’

  • 以二進制寫入(wb)模式打開文件
import os
with open('/ex/test.bin','wb') as f:
	f.write(os.urandom(10))
  • 讀取文件以rb模式讀取
import os
with open('/ex/test.bin','rb') as f:
	f.read()
總結
  • Python3中,bytes是一種包含8位的序列,str是一個包含Unicode字符的序列。
  • 從文件讀取二進制文件時,或者向其中寫入二進制數據時,必須指定’wb’或者‘rb’模式。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章