bytes
和bytearray
同属于二进制序列类型,是常见的数值类型的一种。
bytes
多用在在文件的读写、网络通信、数据编码/解码等场景用的比较多。
而bytearray
在二进制数据处理、图像处理、内存映射文件和网络通信等场景用的比较多。
其中这两部分的主要差别:
bytes
:不可变的字节序列,包含任意字节值(0-255)。bytearray
:可变的字节序列。
1. 不可变的字节序列(bytes):
bytes
常见于读取网页源码返回的字节格式。例如下面的例子,就是:
url = 'http://example.com'
response = urllib.request.urlopen(url)
data = response.read()
print(type(data )) #<class 'bytes'>
返回的内容看起来是字符串,但是实际是字节流。
bytes
类型与 str
类型的主要区别在于:
bytes 是二进制数据,而 str 是文本数据。
在处理文本时,通常使用 str 类型;在处理二进制数据时,则使用 bytes 类型。
如果是自己创建bytes对象,以下是创建的常用方法: