首页 > 代码库 > bytes和bytearray
bytes和bytearray
bytes
bytes是Python 3中特有的,Python 2 里不区分bytes和str。
Python 2中
>>> type(b‘xxxxx‘)<type ‘str‘>>>> type(‘xxxxx‘)<type ‘str‘>
Python 3中
>>> type(b‘xxxxx‘)<class ‘bytes‘>>>> type(‘xxxxx‘)<class ‘str‘>
区别
bytes是byte的序列,而str是unicode的序列。
str 使用encode方法转化为 bytes
bytes通过decode转化为str
str转换成bytes:
In [9]: str1=‘人生苦短,我用Python!‘In [10]: type(str1)Out[10]: strIn [11]: b=str1.encode()In [12]: bOut[12]: b‘\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!‘In [13]: type(str1.encode())Out[13]: bytes
bytes转换成str:
In [22]: bOut[22]: b‘\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!‘In [23]: type(b)Out[23]: bytesIn [24]: b.decode()Out[24]: ‘人生苦短,我用Python!‘In [25]: type(b.decode())Out[25]: str
在Python 2中由于不区分str和bytes所以可以直接通过encode()和decode
()方法进行编码解码。而在Python 3中把两者给分开了这个在使用中需要注意。实际应用中在互联网上是通过二进制进行传输,所以就需要将str转换成bytes进行传输,而在接收中通过decode()解码成我们需要的编码进行处理数据这样不管对方是什么编码而本地是我们使用的编码这样就不会乱码。
bytearray
bytearray和bytes不一样的地方在于,bytearray是可变的。
In [26]: str1Out[26]: ‘人生苦短,我用Python!‘In [28]: b1=bytearray(str1.encode())In [29]: b1Out[29]: bytearray(b‘\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!‘)In [30]: b1.decode()Out[30]: ‘人生苦短,我用Python!‘In [31]: b1[:6]=bytearray(‘生命‘.encode())In [32]: b1Out[32]: bytearray(b‘\xe7\x94\x9f\xe5\x91\xbd\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!‘)In [33]: b1.decode()Out[33]: ‘生命苦短,我用Python!‘
bytes和bytearray
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。