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

   日期:2024-01-17     浏览:47    评论:0    

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

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

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

【文章其它地址】

微信公众号:码农阿杰

CSDN 博客

【参考资料】

Python 官网

Python 3.8.2 documentation

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服