Python教程-bytes

bytes
在 Python 3 以后,字符串和 bytes 类型被彻底区分开来。字符串是以字符为单位处理的,而 bytes 类型是以字节为单位处理的。
bytes 数据类型在所有操作、使用和内置方法上与字符串数据类型基本相同,同样是不可变的序列对象。
bytes 对象只负责以二进制字节序列的形式记录所需的数据,具体表示什么(例如表示哪个字符)取决于相应的编码格式进行解码。在 Python 3 中,bytes 通常用于网络数据传输、二进制图片和文件保存等场景。可以通过调用 bytes()
来创建 bytes 实例,其值形式为 b'xxxxx'
,其中 'xxxxx'
是一个或多个转义的十六进制字符串序列(每个 x
的形式为 \x12
,其中 \x
是小写的十六进制转义字符,12
是两位十六进制数),每个十六进制数代表一个字节(八位二进制数,取值范围为 0-255)。对于同一个字符串,如果使用不同的编码方式生成 bytes 对象,就会得到不同的值。
创建方法:
b = b'' # 创建一个空的bytes
b = bytes() # 创建一个空的bytes
b = b'hello' # 直接指定这个hello是bytes类型
b = bytes('string',encoding='编码类型') #利用内置bytes方法,将字符串转换为指定编码的bytes
b = str.encode('编码类型') # 利用字符串的encode方法编码成bytes,默认为utf-8类型
bytes.decode('编码类型'):将bytes对象解码成字符串,默认使用utf-8进行解码。
对于bytes,我们只要知道在Python3中某些场合下强制使用,以及它和字符串类型之间的互相转换,其它的基本照抄字符串。
简单的省事模式:
string = b'xxxxxx'.decode()
直接以默认的utf-8编码解码bytes成string
b = string.encode()
直接以默认的utf-8编码string为bytes