59

将前缀“b”添加到字符串会将其转换为字节:

b'example'

但我不知道如何用变量来做到这一点。假设string = 'example',这些似乎都不起作用:

b(string)
b string
b'' + string

有没有一种简单的方法可以做到这一点?

4

5 回答 5

57
# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')

在 Python3 中:

字节文字总是以'b'或'B'为前缀;它们生成 bytes 类型而不是 str 类型的实例。它们可能只包含 ASCII 字符;数值为 128 或更大的字节必须用转义表示。

在 Python2 中:

在 Python 2 中,前缀 'b' 或 'B' 被忽略;它表示该文字应该成为 Python 3 中的字节文字。

更多关于字节():

字节([源[,编码[,错误]]])

返回一个新的“bytes”对象,它是 0 <= x < 256 范围内的不可变整数序列。bytes 是 bytearray 的不可变版本——它具有相同的非变异方法以及相同的索引和切片行为。

因此,构造函数参数被解释为 bytearray()。

Bytes 对象也可以用字面量创建,请参阅 String 和 Bytes 字面量。

于 2013-10-22T07:21:59.540 回答
9

使用bytes()

>>> bytes("hello", encoding="ascii")
b'hello'
于 2013-10-22T07:21:14.940 回答
5
string = bytes(string, encoding= 'utf-8')

其中“字符串”是您的变量。

于 2018-05-31T05:38:02.663 回答
4

或者使用bytes.decode()方法转换为string(使用给定的编码):

>>> b'hello'.decode('utf-8')
'hello'

相反的转换是str.encode()将 a 转换stringbytes

>>> 'hello'.encode('utf-8')
b'hello'
于 2019-03-31T04:28:50.437 回答
0

我已经检查了很长时间,我认为将字符串转换为变量的最佳方法是使用 vars()

vars()['变量名'] = 赋值

vars()['created_variable'] = 1
print(created_variable)
>> 1
于 2019-06-12T13:40:58.963 回答