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

如何在Python2中将字符串转换为字节?,python,string,type-conversion,byte,python-2.x,Python,String,Type Conversion,Byte,Python 2.x,我正在尝试将字符串转换为字节,这些字节必须是字符串类型。我知道如何在pyhon3中做到这一点,这很简单,但在python2中我只是迷路了:( 我在python2中尝试了encode()函数,但它似乎不起作用,我读到python2中没有字节类型这样的东西,所以这可能就是我失败的原因 不管怎样,我用python3编写了这段代码,它工作得非常完美: >>a=“嘿” >>>b=字节(a,‘utf-8’) >>>印刷品(b) 嘿 >>>类型(b) >>>c='' >>>对于b中的i: …c++=str(i

我正在尝试将字符串转换为字节,这些字节必须是字符串类型。我知道如何在pyhon3中做到这一点,这很简单,但在python2中我只是迷路了:(

我在python2中尝试了encode()函数,但它似乎不起作用,我读到python2中没有字节类型这样的东西,所以这可能就是我失败的原因

不管怎样,我用python3编写了这段代码,它工作得非常完美:

>>a=“嘿”
>>>b=字节(a,‘utf-8’)
>>>印刷品(b)
嘿
>>>类型(b)
>>>c=''
>>>对于b中的i:
…c++=str(i)+“
...
>>>
>>>印刷品(c)
104 101 121
我尝试过使用python2,当然是字节(a,'utf-8'),但它说str()只接受一个参数(给定2个)。 然后我尝试了encode()和bytearray(),但都没有成功


如果您对如何在python2中获取表示
ehy
的字节
104 101 121
有任何提示,或者如果您确实知道这种“转换”不可能,请告诉我。

在python2中不需要这样的转换,因为
字节
只是python2中
str
的别名

根据报告:

Python2.6添加了
字节
,作为
str
类型,它还支持
b''
符号

2.6
str
与3.0的字节不同 以各种方式键入;最显著的是, 构造函数是完全正确的 不同。在3.0中,
字节([65,66,67])
是3个元素长,包含 表示ABC的字节数;在2.6中,
字节([65,66,67])
返回 12字节字符串,表示
str()
在名单上

2.6中
字节的主要用法将
编写对象类型的测试,例如
as
isinstance(x,字节)
。这将 帮助
2to3
转换器,它不能 告诉2.x代码是否需要字符串 包含字符或8位字符 字节;您现在可以使用
字节
str
代表您的意图 准确地说,生成的代码将 在Python3.0中也必须正确

如果希望Python2中的Python3行为
bytes
能够以整数形式遍历字节,则可以将字符串转换为
bytearray
(请记住,
bytearray
,与
str
bytes
不同,它是可变的):

或者,您可以使用
ord
函数将每个字符转换为其序号:

>>> for c in 'hey':
...     print ord(c)
...
104
101
121

bytes
在python2中不存在,或者更确切地说,python2
str
相当于Python3
bytes
(因此无需转换),python2 unicode相当于Python3
str
,这意味着即使python2中的变量类型显示为字符串,我也可以获得表示字节的值=“ehy”是instance(a,bytes)
返回true,这是令人欣慰的(不会说谎:),但如果我像预期的那样尝试迭代它,它将返回字符
ehy
,而不是表示它的字节
>>> for c in 'hey':
...     print ord(c)
...
104
101
121