字符串/二进制数据到字节

时间:2011-12-12 08:30:42

标签: python binary bytebuffer arrays

Python新手。我想将一个char数组转换为字节缓冲区,即有没有办法将字符串或二进制数据转换为字节缓冲区。

例如:如果str = 'apple'我需要缓冲区= 'apple'的字节值,我可以访问buffer[i]buffer[:j]

如果我使用map(ord,'apple')这会返回一个列表,但我需要一个连续缓冲区。我如何在Python中获得这个?

UPDATE 1:我还需要字节,因为今天它可能是字符串,但明天我可能正在处理文件。

UPDATE 0:我希望以字节为单位。我可以使用@ignacio建议的字符串,但字符串就不会这样做。因为最终这将进入我的滚动哈希

的实现

2 个答案:

答案 0 :(得分:3)

试试bytearray。这将把源字符串转换为byte数组。如果default encoding不是当前的默认字符串编码,则需要指定一个可选的编码参数。

实施例

>>> s = 'apple'
>>> arr=bytearray(s)
>>> [x for x in arr]
[97, 112, 112, 108, 101]
>>> type(arr)
<type 'bytearray'>
>>> 

答案 1 :(得分:0)

您可以在python中使用struct模块。

  

struct模块包括用于在字符串之间进行转换的函数   字节和本机Python数据类型,如数字和字符串。