腌制/将 Python 中的虚拟文件保存到磁盘

Pickle / Save Virtual File in Python to Disk

我想在字典中 pickle 一个虚拟文件。

具体来说,我有一个 function G 方法 save() 需要一个文件对象或字符串(文件名)来将其内容保存到磁盘。

但是我想先把它保存到一个虚拟文件,然后把这个虚拟文件和相关数据一起放入一个dict然后保存(pickle)完整的字典到磁盘。

如何保存到内存中的文件,将其包含在字典中并腌制它?或者你会怎么做?

类似于:

out = {
    'var1': var1,
    'var2': var2
    }

with tempfile.SpooledTemporaryFile() as file:

    G.save(file)
    out['G'] = file

非常感谢!

我认为你想做的事情应该可以通过以下方式实现:

out = {
    'var1': var1,
    'var2': var2
    }

with tempfile.SpooledTemporaryFile() as file:
    G.save(file)
    file.seek(0) # reset the file handle to the start
    out['G'] = file.read() # read the binary data into your dict

二进制流稍后可以转换回类似文件的 obj。使用 io.BytesIO( out['G'] ).