如何将python str转换为bytearray

时间:2014-10-07 07:29:13

标签: python arrays python-2.7

我使用的是Python 2.7,我需要将struct.pack()函数的返回值(根据文档为str)转换为bytearray对象。 bytearray()内置函数接受字符串值,但文档说我还必须传递encoding参数,用于将字符串编码为字节。我不知道编码应该是什么,因为struct.pack()返回值可能已经是字节值,它不是实际的文本字符串,因此没有编码。

那么如何将存储在Python2 bytes中的str对象转换为bytearray对象?

1 个答案:

答案 0 :(得分:3)

更新:文档已corrected;在传入字符串时,您不需要使用encoding参数,该部分现在正确地告诉您只需要unicode个对象。

我的旧答案如下。


文档错了;它是从Python 3批量复制的,其中确实需要编码参数,因为(unicode)字符串必须首先编码为字节。

在Python 2上,只需传入字符串,不指定编码:

>>> bytearray('The quick brown fox jumps over the lazy dog')
bytearray(b'The quick brown fox jumps over the lazy dog')

并使用 unicode字符串在文档中精神上替换 string

我已经提交了一个新的issue in the Python tracker来更正此问题。