Python bytearray()函数
bytearray
是 Python 中的一个内置类,用于表示二进制数据。与 bytes
类似,bytearray
也是不可变的序列,但是它可以通过索引来修改其中的元素,因此可以用于一些需要修改二进制数据的场合。
bytearray 类的语法如下:
bytearray([source[, encoding[, errors]]])
其中:
source
:可以是一个整数、一个包含整数的可迭代对象、一个字符串、一个 bytes 对象或一个可读取对象;encoding
:如果source
是字符串,则需要指定字符编码;errors
:指定编码错误的处理方式,缺省值为 'strict';
bytearray 常用操作
len(bytearray_object)
:返回 bytearray_object 中的字节数。bytearray_object[index] = value
:修改 bytearray_object 中索引为 index 的字节为 value。bytearray_object.append(value)
:在 bytearray_object 的末尾添加一个字节 value。bytearray_object.extend(iterable)
:将可迭代对象 iterable 中的所有字节追加到 bytearray_object 的末尾。bytearray_object.decode(encoding='UTF-8', errors='strict')
:将 bytearray_object 解码为字符串。bytearray_object.hex()
:返回 bytearray_object 的十六进制表示。
示例代码
# 创建一个空的 bytearray
b = bytearray()
# 通过追加字节来构建 bytearray
b.append(97) # 'a'
b.append(98) # 'b'
b.append(99) # 'c'
# 输出 bytearray
print(b) # bytearray(b'abc')
print(len(b)) # 3
# 修改 bytearray
b[1] = 100 # 将 b[1] 修改为 100
print(b) # bytearray(b'adc')
# 使用迭代器扩展 bytearray
b.extend([101, 102, 103])
print(b) # bytearray(b'adcefg')
# 将 bytearray 转换为字符串
s = b.decode('ascii')
print(s) # 'adcefg'
# 将字符串转换为 bytearray
b = bytearray('hello', 'ascii')
print(b.hex()) # '68656c6c6f'
注意,bytearray
和bytes
非常类似,但是由于bytearray
可以修改元素,因此它的性能比bytes
要略低一些。在不需要修改二进制数据的情况下,建议使用bytes
类型。