如何在Python中将字节转换为字符串

如何在Python中将字节转换为字符串

在本教程中,我们将学习如何使用Python脚本将字节转换为字符串。我们还将探讨如何高效地使用这些数据类型。因为Python 2不再使用,所以在本教程中我们包含了Python 3的方法。在深入研究这个主题之前,首先我们需要了解字节数据类型的基本介绍。

Python中的字节数据类型

如果对Python有所了解,那么应该已经知道字节数据类型了。但如果有人对Python不熟悉,那么我们将解释这个概念。让我们看下面的示例。

示例

string1 = 'Welcome to JavaTpoint'
print(type(string1))
string2 = b'Welcome to JavaTpoint'
print(type(string2))

输出:

<class 'str'>
<class 'bytes'>

解释

我们定义了两个具有相同值的字符串。这两个值看起来相似,但数据类型不同。第一个 string1变量字符串 数据类型,而另一个是 字节 数据类型。第二个 string2 变量前缀为’b’,这意味着它生成 字节 数据类型而不是 字符串 数据类型。

这两种数据类型的区别是

字符串 – 字符串是Unicode字符的序列(编码为UTF-16或UTF-32,完全取决于Python的编译)。

字节或字节 – 它表示0到255之间的整数,我们可以用’b’或’B’表示它。

我们可以通过在常规字符串前面写入’b’的文字将任何字符串转换为字节。

注意 – Python 2.x忽略前缀’b’或’B’。

字符串和字节之间的主要区别

在Python 2.x中, strbytes 数据类型都被用作字节类型对象,但在Python 3.x中不是这样。bytes和字符串之间的关键区别在于字符串容易读取或可读性高,而字节最终是机器可读的,字符串在处理之前也会转换为字节。

当我们在Python中声明字节数据类型时,它会直接存储在磁盘上,而字符串会被转换为字节后再存储在磁盘上。

字符串用于表示字符、单词或句子,而字节代表低级二进制数据结构。

将字节转换为字符串的方法

  • 使用decode()方法

Python提供了内置的 decode() 方法,用于将字节转换为字符串。让我们来看下面的示例。

示例

byteData = b"Lets eat a \xf0\x9f\x8d\x95!"
# Let's check the type
print(type(byteData))
str1 = byteData.decode('UTF-8')
print(type(str1))
print(str1)

输出:

<class 'bytes'>
<class 'str'>
Lets eat a 🍕!

说明 –

我们在以上代码中传递了编码格式,将字节对象解码为字符串,并打印出来。

  • 使用代码库将字节转换为字符串

我们还可以使用 codec 模块将字节数据类型转换为字符串。

示例

import codecs
byteData = b'Lets eat a \xf0\x9f\x8d\x95!'
codecs.decode(byteData, 'UTF-8')

输出:

Lets eat a 🍕
  • 使用str()

这是将字节转换为字符串的最简单的方法。让我们看下面的示例。

示例

byteData = b'Lets eat a \xf0\x9f\x8d\x95!'
b1 = str(byteData, 'UTF-8')
print(b1)

输出:

Lets eat a 🍕&!

必须向 str() 方法传递编码参数,否则我们会得到一些意外的结果。错误的编码导致输出不正确。 例如 – 如果我们将 str() 方法与UTF-16一起使用,将会得到以下错误。

str(b, 'UTF-16') 

输出:

'敌❴\u2073牧扡愠\uf020趟↕'

结论

本教程将帮助您处理字节数据类型。字符集、编码和二进制编码用于编码和解码。我们已经定义了各种方法将字节数据类型转换为字符串。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程