python 中某些模塊對數據進行處理時返回的結果可能是字節型對象,但是下一步使用的參數需要的是字符型對象,這裏簡單記錄一下字節型與字符型之間的轉換。
目錄
一、字節與字符
首先我們得明確字節是給計算機看的,而字符是給人看的。
(一)字符對象
創建字節對象的方法很簡單,有兩種:
>>> a = '123'
>>> a
'123'
>>> type(a)
<class 'str'>
>>> a = str(123)
>>> a
'123'
>>> type(a)
<class 'str'>
(二)字節對象
創建字節對象的方法有兩種:
>>> b = b'123'
>>> b
b'123'
>>> type(b)
<class 'bytes'>
>>> b = bytes(123)
>>> b
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> type(b)
<class 'bytes'>
二、字符型轉字節型
同樣也有兩種方法:
>>> b = bytes(a)
>>> b
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> type(b)
<class 'bytes'>
>>> b = a.encode()
>>> b
b'123'
>>> type(b)
<class 'bytes'>
二、字節型轉字符型
兩種方法:
>>> a = b.decode()
>>> a
'123'
>>> type(a)
<class 'str'>
>>> a = str(b)
>>> a
"b'123'"
>>> type(a)
<class 'str'>
該方法輸出的結果可能與預想不同,讀者可以通過如下代碼調整:
>>> a = a.replace("b'", "").replace("'", "")
>>> a
'123'
>>> type(a)
<class 'str'>