Python 字节数组(bytes)的创建与格式化输出
在 Python 里,bytes 对象常被称作字节序列。它存储的是 0 到 255 之间的整数值,对应一个字节的大小。在处理文件 I/O、网络通信或加密解密时,这种二进制数据类型非常关键。
创建与初始化
创建 bytes 对象主要有几种方式,最常用的是 bytes() 构造函数。
1. 使用整数初始化
指定长度,所有元素默认初始化为 0:
# 创建一个长度为 10 的 byte 数组,所有元素都是 0
byte_array = bytes(10)
print(byte_array) # 输出:b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2. 使用字符串编码
将字符串按指定编码转换为字节序列:
# 使用 ASCII 编码创建 byte 数组
byte_array = bytes('Hello', 'ascii')
print(byte_array) # 输出:b'Hello'
3. 使用可迭代对象
传入包含 0-255 范围内整数的列表或元组:
# 使用整数列表创建 byte 数组
int_list = [65, 66, 67] # 对应 ASCII 码中的'A', 'B', 'C'
byte_array = bytes(int_list)
print(byte_array) # 输出:b'ABC'
格式化输出
直接打印 bytes 对象时,Python 会显示类似 b'\x00...' 的形式。这对调试有用,但阅读起来不够直观。如果需要更友好的展示,可以转换格式。
十六进制显示
利用列表推导式和 hex() 函数,将每个字节转为两位十六进制字符串:
byte_array = bytes('Hello', 'ascii')
hex_strings = [hex(b)[2:].zfill(2) for b in byte_array]
print(' '.join(hex_strings))


