什么是 bytes()?
在 Python 中,bytes() 是一个内置函数,用于创建不可变的字节序列对象。
字节序列(bytes)是处理二进制数据、网络通信、文件读写等场景中非常重要的数据类型。
基本语法
bytes([source[, encoding[, errors]]])
参数说明:
- source:可选。可以是整数、字符串、可迭代对象或缓冲区对象。
- encoding:当 source 是字符串时,必须提供编码方式(如 'utf-8')。
- errors:指定如何处理编码错误(如 'strict', 'ignore', 'replace')。
常见用法示例
1. 创建指定长度的空字节序列
>>> b = bytes(5)
>>> print(b)
b'\x00\x00\x00\x00\x00'
创建一个包含 5 个零字节的 bytes 对象。
2. 从字符串创建字节序列(需指定编码)
>>> b = bytes("你好", encoding="utf-8")
>>> print(b)
b'\xe4\xbd\xa0\xe5\xa5\xbd'
将中文字符串按 UTF-8 编码转换为字节序列。
3. 从整数列表创建字节序列
>>> b = bytes([72, 101, 108, 108, 111])
>>> print(b)
b'Hello'
每个整数必须在 0–255 范围内,代表一个字节。
注意事项
bytes对象是不可变的,一旦创建不能修改。- 若要创建可变的字节序列,请使用
bytearray()。 - 处理非 ASCII 字符时,务必指定正确的编码(如 UTF-8),否则会报错。
实际应用场景
bytes() 常用于以下场景:
- 读写二进制文件(如图片、音频)
- 网络协议数据包构造与解析
- 加密/解密操作中的原始数据处理
- 与 C 语言扩展或底层系统交互