您的“关注”和“点赞”,是信任,是认可,是支持,是动力......
目录如意见相佐,可留言。
本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。
- 1 bytes 类型概述
- 2 文本序列(str)与字节序列(bytes)的相互转换
- 2.1 文本序列(str)与字节序列(bytes)的相互转换概述
- 2.2 将文本序列(str)转换成字节序列(bytes)
- 2.3 将字节序列(bytes)转换为文本序列(str)
- 【文章其它地址】
- 微信公众号:码农阿杰
- CSDN 博客
- 【参考资料】
- Python 官网
- Python 3.8.2 documentation
1 bytes 类型概述
Python bytes
类型是由单个字节构成的不可变序列。
Python bytes
可以称为二进制序列、或字节序列。
bytes
只负责以字节序列的形式(二进制序列的形式)来存储数据,至于这些数据到底表示什么内容(例如:数字、字符串、图片、音频等),完全由程序的解析方式决定。
bytes
非常适合在互联网上传输,可以用于网络通信编程。
2 文本序列(str)与字节序列(bytes)的相互转换
2.1 文本序列(str)与字节序列(bytes)的相互转换概述
如果采用合适的字符编码方式(指的是字符集),字节序列(二进制序列)可以转换成文本序列(字符串);文本序列(字符串)也可以转换成字节序列(二进制序列)。
2.2 将文本序列(str)转换成字节序列(bytes)
有以下三种方法可以达到这个目的:
- 如果字符串的内容都是
ASCII
字符,那么直接在字符串(文本序列)前面添加b
前缀就可以转换成bytes
。 bytes
是一个类,调用它的构造方法bytes()
,可以将字符串(文本序列)按照指定的字符集转换成bytes
;如果不指定字符集,那么默认采用UTF-8
。- 字符串(文本序列)本身有一个
encode()
方法,该方法专门用来将字符串按照指定的字符集转换成对应的字节序列;如果不指定字符集,那么默认采用UTF-8
。
举例如下所示:
# 通过 b 前缀将文本序列转换成字节序列
bytes_demo1 = b'https://blog.csdn.net/manongajie'
print('通过 b 前缀将文本序列转换成字节序列 bytes_demo1 =', bytes_demo1)
# 通过构造方法 bytes() 将文本序列转换成字节序列
# 非 ASCII 字符,print() 输出的是它的字符编码值(十六进制形式)
bytes_demo2 = bytes('码农阿杰', encoding='UTF-8') # 可以指定字符集。如果不指定,默认为 UTF-8。
print('通过构造方法 bytes() 将文本序列转换成字节序列 bytes_demo2 =', bytes_demo2)
# 通过 encode() 方法将文本序列转换成字节序列
str_demo = '码农阿杰' # 非 ASCII 字符,print() 输出的是它的字符编码值(十六进制形式)
bytes_demo3 = str_demo.encode('UTF-8')
print('通过 encode() 方法将文本序列转换成字节序列 bytes_demo3 =', bytes_demo3)
运行结果:
通过 b 前缀将文本序列转换成字节序列 bytes_demo1 = b'https://blog.csdn.net/manongajie'
通过构造方法 bytes() 将文本序列转换成字节序列 bytes_demo2 = b'\xe7\xa0\x81\xe5\x86\x9c\xe9\x98\xbf\xe6\x9d\xb0'
通过 encode() 方法将文本序列转换成字节序列 bytes_demo3 = b'\xe7\xa0\x81\xe5\x86\x9c\xe9\x98\xbf\xe6\x9d\xb0'
2.3 将字节序列(bytes)转换为文本序列(str)
将字节序列(bytes)转换为文本序列(str),可以使用字节序列提供的 decode()
方法。
举例如下所示:
# 通过 encode() 方法将文本序列转换成字节序列
str_demo = '码农阿杰' # 非 ASCII 字符,print() 输出的是它的字符编码值(十六进制形式)
bytes_demo3 = str_demo.encode('UTF-8')
print('通过 encode() 方法将文本序列转换成字节序列 bytes_demo3 =', bytes_demo3)
# 通过 decode() 方法将字节序列转换成文本序列
str1 = bytes_demo3.decode('UTF-8')
print('通过 decode() 方法将字节序列转换成文本序列 str1 =', str1)
运行结果:
通过 encode() 方法将文本序列转换成字节序列 bytes_demo3 = b'\xe7\xa0\x81\xe5\x86\x9c\xe9\x98\xbf\xe6\x9d\xb0'
通过 decode() 方法将字节序列转换成文本序列 str1 = 码农阿杰