0

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

具体来说,我有一个函数 G,该函数save()采用文件 obj 或字符串(文件名)将其内容保存到磁盘。

但我想先将它保存到一个虚拟文件中,然后将此虚拟文件dict与关联数据一起放入一个,然后将完整的字典保存(pickle)到磁盘。

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

就像是:

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

with tempfile.SpooledTemporaryFile() as file:

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

非常感谢!

4

1 回答 1

1

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

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'] ).

于 2021-11-10T14:20:00.933 回答