gpt4 book ai didi

python - 什么是适合 Python 的结构模块的缓冲区

转载 作者:太空狗 更新时间:2023-10-29 20:17:40 26 4
gpt4 key购买 nike

在 Python 中,我通过将二进制文件读入字符串然后使用 struct.unpack(...) 来访问它。现在我想使用 struct.pack_into(...) 写入该字符串,但出现错误 “无法将字符串用作可修改缓冲区”。什么是适合与 struct 模块一起使用的缓冲区?

最佳答案

如另一个答案所述,struct_pack 可能是您需要和应该使用的全部。但是,类型为 array 的对象支持缓冲协议(protocol),可修改:

>>> import array, struct
>>> a = array.array('c', ' ' * 1000)
>>> c = 'a'; i = 1
>>> struct.pack_into('ci', a, -0, c, i)
>>> a
array('c', 'a\x00\x00\x00\x01\x00\x00\x00 ...

最初的缓冲协议(protocol)主要是针对 C 扩展的一些 hack。它已被弃用并替换为 new C-level buffer API and memoryview objects在 Python 3(以及即将发布的 2.7)中。

关于python - 什么是适合 Python 的结构模块的缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1732660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com