Binary buffer in Python在Python中,您可以将StringIO用作字符数据的文件状缓冲区。内存映射文件基本上对二进制数据执行类似的操作,但是它需要一个用作基础的文件。 Python是否具有仅用于二进制数据且仅用于内存的文件对象,等同于Java的ByteArrayOutputStream? 我的用例是我想在内存中创建一个ZIP文件,而ZipFile需要一个类似文件的对象。 您可能正在寻找io.BytesIO类。除了支持二进制数据外,它的工作原理与StringIO完全相同:
StringIO将引发TypeError:
只要您不尝试将任何unicode数据放入您的 根据StringIO文档,只要您使用unicode或8位,一切都会按预期进行。据推测,当某人执行
可以按预期工作,并且结果存档中的文件与原始文件之间没有区别。 如果您知道在这种情况下这种方法行不通的特定情况,那么我将非常有兴趣了解它:) 查看struct包:https://docs.python.org/library/struct.html,它使您可以将字符串解释为打包的二进制数据。 不确定这是否可以完全回答您的问题,但是您可以使用struct.unpack()将二进制数据转换为python对象。
int在此示例中,">"指示读取big-endian," h"读取2字节短,而" l"表示4字节长。您显然可以将它们更改为从二进制数据中读取所需的任何内容... |