Python bytes类型详解

什么是bytes?

byte,也称为字节,是计算机唯一可以存储的东西。也就是说,你想要在计算机中存储任何东西,都需要对其进行编码,将其转换为字节。例如:

  • 存储音乐,必须先使用MP3、WAV等方式对其编码。
  • 存储图片,必须先使JPG、JPEG等方式对其编码。
  • 存储文本,必须使用ASCII、UTF-8等方式对其编码。

这里面,MP3、WAV、JPG、JPEG、ASCII、UTF-8等都是编码的类型,每种类型的编码方式不同,所以在解码时也要通过编码时的方式解码。

bytes与string的区别

同理,在Python中,bytes就是:字节序列。它只存储二进制的0和1,人类是无法理解的。

而 string 字符串是字符序列,人类可以理解的,但它无法直接存储在计算机中,必须要对其编码(转换为bytes)。有多种编码方式可以将string转换为bytes,如ASCII、UTF-8、GBK等。举例如下:

i_string='I am a string'.encode('UTF-8')
print(i_string)

输出:b'I am a string'

在这个例子中,Python使用UTF-8的编码方式对变量i_string的值“I am a string”进行了编码,然后存入到了计算机中。

如果我们用print函数打印出i_string的值,Python会将其表示为`b'I am a string'。这并不代表实际存储在计算机中的就是这个值,而是在打印时,Python使用UTF-8解码了它们,所以才能以字符的形式展现出来。但它在字符前添加了“b”这个字符,以标识它是bytes类型。

当然,我们也可以将bytes解码回string,如下:

i_bytes = b'I am a string'.decode('UTF-8')
print(i_bytes)

上面变量i_bytes输出的结果为:I am a string

编码解码是逆运算,计算机在将字符写入到磁盘前进行编码,从磁盘中读取时进行解码

bytes的作用和使用方式

bytes类型是Python3.0以上版本新增的类型。如上文所知,bytes只负责以二进制形式存储数据,至于这些二进制数据代表了什么内容,完全由程序的编码方式决定。

除了存储图片、视频、音乐等文件外,bytes类型的数据也非常适合在互联网上传输,所以一般用于网络通信。

在Python中,bytes和string类型关系最为紧密,你可以将字符串转换为bytes对象,你可以使用以下两种方式:

#通过构造函数方式创建 bytes 变量
b1 = bytes()#无参数创建空的bytes
b2 = bytes('Python技术站',encoding='UTF-8')#指定UTF-8字符编码方式,转换为bytes
print(b1)
print(b2)

#通过字符形式创建 bytes 变量
bs1 = b''
bs2 = b'http://pythonjishu.com'
print(bs1)
print(bs2)

输出:

b''
b'Python\xe6\x8a\x80\xe6\x9c\xaf\xe7\xab\x99'
b''
b'http://pythonjishu.com'

从运行结果可以发现,变量b2的输出结果并没有原样输出,而是输出了十六进制形式的字符编码值,这是因为Python将bytes转换为字符时,是按照单个字节处理数据的,而非ASCII字符(例子中的中文)一般占用两个以上的字节,Python无法一次性处理,所以会以十六进制形式输出。

对于非ASCII字符,bytes有一个decode()方法,通过该方法可以将bytes对象重新转换成字符串。例如上面的b2变量:

b2.decode('UTF-8')

输出结果:

'Python技术站'

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python bytes类型详解 - Python技术站

(1)
上一篇 2022年11月28日 下午8:00
下一篇 2022年12月18日

相关文章

  • 25个值得收藏的Python文本处理案例

    25个值得收藏的Python文本处理案例 本攻略将介绍25个值得收藏的Python文本处理案例。这些案例涵盖了Python文本处理的各个方面,包括字符串操作、正则表达式、文件处理、自然语言处理等。 示例1:字符串操作 1. 反转字符串 s = ‘Hello, World!’ s_reversed = s[::-1] print(s_reversed) 在上面…

    python 2023年5月15日
    00
  • Django零基础入门之调用漂亮的HTML前端页面

    Django是一个流行的Python Web框架,可以用于构建高效、可扩展的Web应用程序。以下是Django零基础入门之调用漂亮的HTML前端页面的详细攻略: 创建Django项目 要创建Django项目,可以使用django-admin命令。以下是创建Django项目的示例: django-admin startproject myproject 在上面…

    python 2023年5月14日
    00
  • Python实现替换文件中指定内容的方法

    下面是Python实现替换文件中指定内容的方法的完整攻略。 一、需求背景 有时候我们需要在一个文件中替换指定的字符串,比如我们需要把文件中的”a”字符串替换成”b”字符串。Python提供了操作文件的API,可以用Python来实现这个需求。 二、操作步骤 1.打开文件 使用Python的内置函数open()打开文件,并指定打开文件的模式为”r”,表示只读模…

    python 2023年6月5日
    00
  • Python爬虫部分开篇概念讲解

    先对“Python爬虫开篇概念讲解”给出一个完整的攻略,包括以下几个方面: 一、 什么是Python爬虫 Python爬虫是一种自动获取互联网信息的方法,是通过编写脚本程序模拟浏览器行为自动化地获取互联网上的数据,并存储到本地计算机或其他数据处理系统中。Python爬虫可以大大提高数据获取的效率和精度,是数据分析、机器学习等领域必不可少的技能。 二、Pyth…

    python 2023年5月14日
    00
  • pandas-resample按时间聚合实例

    【pandas-resample按时间聚合实例】 1. pandas resample概述 pandas的resample方法是基于时间序列数据(positional or index based timeseries data)进行重采样的一种方法。通过resample方法,我们可以将时间序列数据从一个频率转换成另一个频率,如将数据从分钟级别转换为小时级别…

    python 2023年6月2日
    00
  • Python使用psutil获取系统信息

    下面我们来详细讲解下“Python使用psutil获取系统信息”的完整攻略。 1. 什么是psutil psutil是一个跨平台的库,它可以获取系统进程、CPU、磁盘、内存、网络等信息。使用起来非常方便,只需要一句代码就可以获取到大量的系统信息。 2. 安装psutil 使用psutil需要先进行安装,可以使用pip安装,打开终端或者命令提示符,输入以下命令…

    python 2023年5月30日
    00
  • python 实现将字典dict、列表list中的中文正常显示方法

    要在 Python 中将中文正常地显示出来,需要注意两点:编码格式和输出方式。下面是详细的步骤说明: 设置编码格式 首先,需要在 Python 文件中设置编码格式,常用的有 UTF-8 和 GBK 两种格式,这里以 UTF-8 为例。 在 Python 文件的开头添加如下代码: # -*- coding: utf-8 -*- 此代码是告诉 Python 解释…

    python 2023年5月13日
    00
  • Selenium+Python自动化测试入门

    Selenium+Python自动化测试入门 简介 Selenium是一个流行的自动化测试工具,它可以在浏览器上模拟多种操作,比如用户输入、点击、滚动等等,还可以获取浏览器中的元素进行断言、检查等等。Selenium的支持范围广泛,包括Chrome、Firefox、Safari等浏览器,而且它的Python库也非常容易使用,对于初学者来说是一个非常友好的选择…

    python 2023年5月19日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

合作推广
合作推广
分享本页
返回顶部