您的位置:

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

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

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’,这意味着它产生的是字节数据类型,而不是字符串数据类型。

这两种数据类型之间的区别是

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

Bytes 或 byte - 表示 0 到 255 之间的整数,我们可以表示为‘b’或‘b’

我们可以通过在常规字符串前面写“be literal”将任何字符串转换为字节。

注意- Python 2.x 忽略前缀“b”或“b”。

字符串和字节的关键区别

str 和 bytes 两种数据类型在 Python 2.x 中都被用作 byte 类型对象,但在 Python 3.x 的情况下就不是这样了,字节和 string 的关键区别在于字符串容易读取或者是人可读的,其中一个字节最终是机器可读的,字符串在处理之前也会被转换成 Byte。

当我们在 Python 中声明一个字节数据类型时,它直接存储在磁盘中,一个字符串被转换成一个字节,然后存储在磁盘上。

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

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

  • 使用解码()方法

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 ?!

```py

**解释-**

我们在上面的代码中传递了编码格式,将 bytes 对象解码成一个字符串,并打印出来。

*   **使用字节来串编编解码器**

我们还可以使用 ***编解码器*** 模块将字节数据类型转换为字符串。

**示例-**

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()** 否则会得到一些意想不到的结果。错误的编码导致不正确的输出。**例如-** 如果我们用 UTF-16 传递 **str()** 方法,会得到如下错误。

str(b, 'UTF-16')


**输出:**

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



## 结论

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

* * *