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

0 投票
2 回答
5175 浏览
提问于 2025-04-17 08:12

我刚开始学Python。我想把一个字符数组转换成字节缓冲区,也就是说,有没有办法把字符串或二进制数据转换成字节缓冲区。

比如说,如果str = 'apple',我需要一个缓冲区,它是'apple'的字节值,这样我就可以像buffer[i]buffer[:j]这样访问它。

如果我使用map(ord,'apple'),这会返回一个列表,但我需要的是一个连续的缓冲区。我该怎么在Python中做到这一点呢?

更新 1:我需要字节格式,因为今天可能是字符串,但明天我可能要处理文件。

更新 0:我想要字节格式。虽然@ignacio建议我可以用字符串,但字符串不太合适。因为最终这会用在我的滚动哈希实现中。

2 个回答

0

你可以在Python中使用struct模块。

这个struct模块提供了一些功能,可以帮助你在字节字符串和Python本身的数据类型(比如数字和字符串)之间进行转换。

3

试试 bytearray。这个方法可以把源字符串转换成一个字节数组。如果你使用的编码方式和默认编码不一样,你需要指定一个编码参数。

示例

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

撰写回答