如何在Python2中将字符串转换为字节?
我正在尝试将字符串转换为字节,这些字节必须是字符串类型。我知道如何在pyhon3中做到这一点,这很简单,但在python2中我只是迷路了:( 我在python2中尝试了encode()函数,但它似乎不起作用,我读到python2中没有字节类型这样的东西,所以这可能就是我失败的原因 不管怎样,我用python3编写了这段代码,它工作得非常完美:如何在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
>>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.6str
与3.0的字节不同
以各种方式键入;最显著的是,
构造函数是完全正确的
不同。在3.0中,字节([65,66,67])
是3个元素长,包含
表示ABC的字节数;在2.6中,
字节([65,66,67])
返回
12字节字符串,表示str()
在名单上
2.6中字节的主要用法将
编写对象类型的测试,例如
asisinstance(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中不存在,或者更确切地说,python2str
相当于Python3bytes
(因此无需转换),python2 unicode相当于Python3str
,这意味着即使python2中的变量类型显示为字符串,我也可以获得表示字节的值=“ehy”是instance(a,bytes)
返回true,这是令人欣慰的(不会说谎:),但如果我像预期的那样尝试迭代它,它将返回字符ehy
,而不是表示它的字节
>>> for c in 'hey':
... print ord(c)
...
104
101
121