bytes
是 Python 中用于将其他类型的数据转换为字节序列的内置函数。它的主要作用是将不可变的字节序列创建为字节对象。
函数语法
bytes([source[, encoding[, errors]]])
参数:
source
(可选): 要转换为字节序列的对象。可以是整数、可迭代对象(如字符串、列表、元组)等。如果省略该参数,则创建一个空的字节对象。encoding
(可选): 字符编码的字符串,用于将字符串对象转换为字节序列。默认是'utf-8'
。errors
(可选): 可选的错误处理方案,用于处理无法编码的字符。默认是'strict'
,表示引发UnicodeEncodeError
错误。其他选项包括'ignore'
、'replace'
等。
示例代码
将整数列表转换为字节序列:
int_list = [72, 101, 108, 108, 111] # ASCII 编码的 "Hello"
byte_string = bytes(int_list)
print(byte_string)
输出:
b'Hello'
将字符串转换为字节序列:
text = "你好"
byte_string = bytes(text, encoding='utf-8')
print(byte_string)
输出:
b'\xe4\xbd\xa0\xe5\xa5\xbd'
使用不同的编码方式将字符串转换为字节序列:
text = "你好"
byte_string_utf8 = bytes(text, encoding='utf-8')
byte_string_utf16 = bytes(text, encoding='utf-16')
print(byte_string_utf8)
print(byte_string_utf16)
输出:
b'\xe4\xbd\xa0\xe5\xa5\xbd'
b'\xff\xfe`O\xe5\xbd\x05'
使用错误处理方案处理无法编码的字符:
text = "你好"
byte_string = bytes(text, encoding='ascii', errors='replace')
print(byte_string)
输出:
b'??'
总结
bytes
函数用于将其他类型的数据转换为字节序列。它可以将整数列表、字符串等多种类型的数据转换为字节对象,并可以指定字符编码和错误处理方案。这是一个灵活而强大的函数,用于处理字节数据和字符编码之间的转换。注意,bytes
创建的字节对象是不可变的,一旦创建,就无法修改。