【问题标题】:Add "b" prefix to python variable?在python变量中添加“b”前缀?
【发布时间】:2013-10-22 07:16:51
【问题描述】:
在字符串中添加前缀“b”会将其转换为字节:
b'example'
但我不知道如何使用变量来执行此操作。假设string = 'example',这些似乎都不起作用:
b(string)
b string
b'' + string
有没有简单的方法来做到这一点?
【问题讨论】:
标签:
python
python-3.x
byte
【解决方案1】:
# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')
在 Python3 中:
字节文字总是以'b'或'B'为前缀;他们产生一个
bytes 类型而不是 str 类型的实例。他们可能只
包含 ASCII 字符;数值为 128 或更大的字节
必须用转义符表示。
在 Python2 中:
'b' 或 'B' 前缀在 Python 2 中被忽略;它表明
在 Python 3 中文字应该成为字节文字。
更多关于字节():
字节([源[,编码[,错误]]])
返回一个新的“bytes”对象,它是一个不可变的序列
0
因此,构造函数参数被解释为 bytearray()。
Bytes 对象也可以用字面量创建,参见 String 和 Bytes
文字。
【解决方案2】:
使用bytes():
>>> bytes("hello", encoding="ascii")
b'hello'
【解决方案3】:
string = bytes(string, encoding= 'utf-8')
'string' 是你的变量。
【解决方案4】:
或者使用bytes.decode()方法转换为string(使用给定的编码):
>>> b'hello'.decode('utf-8')
'hello'
相反的转换是str.encode()将string转换为bytes:
>>> 'hello'.encode('utf-8')
b'hello'
【解决方案5】:
我已经检查了很长时间,我认为将字符串转换为变量的最佳方法是使用 vars()
vars()['变量名'] = 要分配的值
vars()['created_variable'] = 1
print(created_variable)
>> 1