在Python中,bytes
是一个不可变(immutable)的字节序列类型。它是字节型数据(byte-like data)的通用表示,通常用于处理二进制数据或网络通信中的数据。
bytes
对象可以通过多种方式创建:
- 使用
bytes()
构造函数:
# 创建一个空的 bytes 对象
b1 = bytes()
# 创建一个包含特定值的 bytes 对象,长度为 5
b2 = bytes(5) # 这将创建一个长度为5的bytes对象,包含5个null字节(\x00)
# 创建一个包含特定字节值的 bytes 对象
b3 = bytes([65, 66, 67]) # 这将创建 b'ABC'
# 从字符串创建 bytes 对象(指定编码)
b4 = bytes("Hello", 'utf-8') # 这将创建 b'Hello'
- 使用字节字面量(在字符串前加
b
或B
):
b5 = b'Hello, World!'
bytes` 对象有一些常用的方法,例如:
len(b)
:返回bytes
对象的长度(即字节数)。b[i]
:索引访问,返回第i
个字节(0 <= i < len(b)
)。b + other
:连接两个bytes
对象。b * i
:将bytes
对象重复i
次。bytes.decode(encoding='utf-8', errors='strict')
:将bytes
对象解码为字符串。bytes.hex()
:返回一个表示bytes
对象中字节的十六进制字符串。bytes.fromhex(string)
:从十六进制字符串中创建bytes
对象。
请注意,bytes
对象和字符串(str
)在Python中是不同的数据类型。它们之间的主要区别在于,字符串是Unicode字符的序列,而 bytes
是字节的序列。当你处理非文本数据(如图像、视频、音频文件等)或网络通信中的数据时,bytes
类型非常有用。