Python bytearray() 函数用法

2023-09-17 22:23:33

bytearray() 方法返回一个 bytearray 对象,该对象是给定字节的数组。字节数组类是 0 到 256 范围内的可变整数序列。

语法:

bytearray(source, encoding, errors)

参数:

  1. 源:(可选)用于将其转换为字节数组的整数或可迭代对象。
    1. 如果源是字符串,则必须使用编码参数。
    2. 如果源是整数,则数组将具有该大小,并将使用空字节进行初始化。
    3. 如果源是符合缓冲区接口的对象,则将使用该对象的只读缓冲区来初始化字节数组。
    4. 如果源是可迭代对象,则它必须仅在 0 到 256 范围内具有整数元素。
  2. 编码:(可选)如果源是字符串,则字符串的编码。
  3. 错误:(可选)编码转换失败时要执行的操作。

返回值:

返回字节数组。

下面的示例将整数转换为字节数组。

print(bytearray(1)) # A byte array of size 1
print(bytearray(2)) # A byte array of size 2
print(bytearray(3)) # A byte array of size 3

输出:

bytearray(b'\x00')
bytearray(b'\x00\x00')
bytearray(b'\x00\x00\x00')

如果 source 参数是字符串且未指定编码方法,则返回TypeError异常。

print(bytearray('Hello World'))

输出:

TypeError: string argument without an encoding

需要指定编码方法以返回字符串的字节数组对象,如下所示。

print(bytearray('Hello World','utf-8'))

输出:

bytearray(b'Hello World')

迭代对象也可以转换为字节数组对象,如下所示。

nums = [1, 2, 3, 4, 5]
print(bytearray(nums))

输出:

bytearray(b'\x01\x02\x03\x04\x05')