Python bytes()函数
bytes
是 Python 中的一个内置类,用于表示二进制数据。bytes
对象是不可变的,即一旦创建,就不能修改其中的元素。由于二进制数据通常是不可变的,因此bytes
类型广泛应用于文件、网络通信等场合。
bytes
类的语法如下:
bytes([source[, encoding[, errors]]])
其中:
source
:可以是一个整数、一个包含整数的可迭代对象、一个字符串、一个 bytes 对象或一个可读取对象;encoding
:如果 source 是字符串,则需要指定字符编码;errors
:指定编码错误的处理方式,缺省值为 'strict';
bytes 常用操作
以下是一些bytes
的常用操作:
len(bytes_object)
:返回 bytes_object 中的字节数;bytes_object[index]
:返回 bytes_object 中索引为 index 的字节;bytes_object.count(sub[, start[, end]])
:返回 bytes_object 中子序列 sub 的出现次数;bytes_object.find(sub[, start[, end]])
:查找子序列 sub 在 bytes_object 中出现的位置,如果不存在则返回 -1;bytes_object.hex()
:返回 bytes_object 的十六进制表示;
示例代码
# 创建一个空的 bytes 对象
b = bytes()
# 创建一个 bytes 对象
b = bytes([97, 98, 99]) # b'abc'
b = bytes('abc', 'ascii') # b'abc'
# 输出 bytes 对象
print(b) # b'abc'
print(len(b)) # 3
# 访问 bytes 对象的元素
print(b[1]) # 98
# 查找子序列
print(b.find(b'bc')) # 1
print(b.find(b'def')) # -1
# 将 bytes 对象转换为十六进制字符串
s = b.hex()
print(s) # '616263'
# 将十六进制字符串转换为 bytes 对象
b = bytes.fromhex('68656c6c6f')
print(b) # b'hello'
注意,在 Python 3 中,字符串是使用 Unicode 编码的,因此如果需要处理二进制数据,需要使用bytes
或bytearray
类型。如果需要将二进制数据转换为字符串,可以使用bytes.decode()
方法,指定相应的字符编码。例如,b.decode('ascii')
将字节串 b 解码为 ASCII 编码的字符串。