写入内存文件而非文件路径

2 投票
3 回答
3116 浏览
提问于 2025-04-18 03:36

有没有办法给一个内存缓冲区提供路径来写入数据,而不是给一个文件路径?比如说,不是用 object.save("D:\filename.jpg") 这种方式,而是给它一个指向内存的路径。我想这样做是为了避免把图片对象的数据写入文件,比如 .JPG 格式,而是直接保存到内存中,这样我就可以在内存里使用它,而不用再从磁盘上加载。

3 个回答

0

如果 object.save 支持类似文件的对象,这意味着你可以使用那些有写入方法的对象。你可以给这个方法提供一个 StringIO.StringIO 的实例。这个实例的使用方式和普通文件对象一样,但它的内容是保存在内存中的,而不是写到硬盘上。

1

如果你想要一个可以直接写入的原始字节缓冲区,可以使用bitstring

>>> a = BitArray('0x1af')
>>> a.hex, a.bin, a.uint     # Different interpretations using properties
('1af', '000110101111', 431)

如果你不想要一个原始的位或字节数组,那就把你的图像对象保存在内存中就行了。其实这和文件差不多,只不过是存储在内存里,而不是硬盘上。

1

我觉得你是在找 StringIO 这个库。

撰写回答