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

1,003 阅读3分钟

将Python字符串转换为字节的过程称为编码,字节转换为字符串的过程称为解码。

Python中的字节对象是一个字节序列,这些字节对象是机器可读的,可以立即存储在磁盘上。**字符串**是人类可读的形式,需要被编码并存储在磁盘上。

Python字符串到字节

要在Python 字符串 转换字节,可以使用encode()方法。string.encode(encoding)方法是一种比使用byte() 构造函数更符合Pythonic的方式,因为它是最能自我记录和建议的方式,即"拿这个字符串用这个编码标准进行编码"这比byte(string,encoding)更清晰。

但是,如果你想使用字节构造函数,那么将字符串作为字节构造函数的第一个输入,然后将编码标准作为第二个参数。

代码片段

string.encode("UTF-8")

# OR

bytes(string, "UTF-8")

string.encode()方法的参数是编码标准。

bytes()函数需要两个参数;第一个参数是一个字符串,我们将通过它来转换为字节。

第二个参数是一个编码标准,UTF-8ASCII

使用Python字符串encode()将字符串转换为字节

请看下面的代码:

string = "Cyberpunk 2077"

# String with encoding "UTF-8"
p_bytes = string.encode("UTF-8")

# String with encoding "ASCII"
p_bytes2 = string.encode("ASCII")

print(p_bytes, '\n')
print(p_bytes2, "\n")

# Actual bytes in the the string
for byte in p_bytes:
    print(byte, end=' ')
print("\n")
for byte in p_bytes2:
    print(byte, end=' ')

输出

b'Cyberpunk 2077'

b'Cyberpunk 2077'

67 121 98 101 114 112 117 110 107 32 50 48 55 55

67 121 98 101 114 112 117 110 107 32 50 48 55 55

在第一步中,我们定义了一个字符串,然后使用string encode()函数,用两种标准将字符串编码为字节数。1)UTF-82)ASCII。然后我们打印了这两个字节,再使用for-in循环一个一个地打印字节。

在Python3中,对字符串进行编码的最好方法是使用默认参数"UTF-8 "的 encode() 函数

你可以从输出中看到,前两个输出是b字符串,意味着它们现在是字节。Python的b字符串由字节数据组成,意味着代表整数的字面意义在0255之间。

使用Python bytes构造函数将字符串转换为字节

请看下面的代码:

string = "Cyberpunk 2077"

# String with encoding "UTF-8"
p_bytes = bytes(string, "UTF-8")

# String with encoding "ASCII"
p_bytes2 = bytes(string, "ASCII")

print(p_bytes, '\n')
print(p_bytes2, "\n")

# Actual bytes in the the string
for byte in p_bytes:
    print(byte, end=' ')
print("\n")
for byte in p_bytes2:
    print(byte, end=' ')

输出

b'Cyberpunk 2077'

b'Cyberpunk 2077'

67 121 98 101 114 112 117 110 107 32 50 48 55 55

67 121 98 101 114 112 117 110 107 32 50 48 55 55

在第一步中,我们定义了一个字符串,然后使用字节构造函数,用两种标准将字符串编码为字节。1) UTF-82) ASCII。然后我们打印了这两个字节,再使用for-in循环逐一打印字节。

本教程就到此为止,谢谢你接受它。