Bytes類型

Bytes類型

1、定義

bytes類型是指一堆字節的集合,在python中以b開頭的字符串都是bytes類型。python

b'\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88' 
'''
b開頭的都表明是bytes類型,是以16進制來顯示的,2個16進製表明一個字節。 
utf-8是3個字節表明一箇中文,因此以上正好是9個字節
'''

2、Bytes類型的做用

計算機只能存儲2進制,要想將字符、圖片、視頻、音樂等存在硬盤上,也必須以正確的方式編碼成2進制後再存儲。編程

  • 對於文字,咱們能夠用gbk編碼,也能夠用utf-八、ASCII編碼。編碼

  • 對於圖片,必須編碼成PNG,JPEG等格式。code

  • 對於音樂,必須編碼成MP3,WAV等。視頻

在python中,數據轉成2進制後不是直接以010101的形式表示的,而是用一種叫bytes(字節)的類型來表示的。字符串轉成bytes後長成這個樣子:對象

s = '小明'
a = s.encode('utf-8')
print(a)

在python中,字符串必須編碼成bytes後才能存到硬盤上,可是爲何以前學的文件操做並無把字符串編碼後再存儲?那是由於python默認幫你幹了這個事了,如python3中文件存儲的默認編碼是utf-8。blog

固然,你能夠自行改變文件的默認編碼。圖片

f = open(file="encode_test",encoding="gbk",mode="w")

這樣,你寫入的數據就是按gbk編碼的了。utf-8

3、以二進制模式操做文件

固然,在打開文件時若是你不想讓open這個對象幫你自動編碼,你也能夠直接往文件裏存入bytes數據。字符串

f = open(file="encode_test",mode="wb") # wb以2進制模式打開文件
s = "自學編程,誰不上小猿圈".encode("utf-8")  # 自行編碼
print(s )
f.write(s)
f.close()

輸出結果:

b'\xe8\x87\xaa\xe5\xad\xa6\xe7\xbc\x96\xe7\xa8\x8b\xef\xbc\x8c\xe8\xb0\x81\xe4\xb8\x8d\xe4\xb8\x8a\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88'

以2進制模式打開文件的方式有:

  • wb 二進制建立
  • rb 二進制讀
  • ab 二進制追加
相關文章
相關標籤/搜索