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'>