Python 二进制序列(字节序列)类型之一:bytes [学习 Python 必备基础知识][看此一篇就够了][文本序列(str)转换成字节序列(bytes)][字节序列转换为文本序列]

您的“关注”和“点赞”,是信任,是认可,是支持,是动力......

如意见相佐,可留言。
本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。

在这里插入图片描述

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 = 码农阿杰

【文章其它地址】

微信公众号:码农阿杰

CSDN 博客

【参考资料】

Python 官网

Python 3.8.2 documentation

posted @ 2020-05-20 20:09  码农阿杰  阅读(496)  评论(0编辑  收藏  举报