您可能要考虑使用a
tempfile.SpooledTemporaryFile,它可以为您提供两全其美的意义,因为它将首先创建一个基于内存的临时虚拟文件,但是如果保存在内存中的数据超过指定的数量,它将自动切换到基于物理磁盘的文件尺寸。
另一个不错的功能是(使用内存时)它将自动使用
io.BytesIO或,
io.StringIO具体取决于使用的是什么
mode—允许您对其读写Unipre字符串或二进制数据(字节)。
唯一棘手的部分可能是您需要避免在步骤之间关闭文件,因为这样做可能会导致文件从内存或磁盘中删除。相反,您可以使用文件
seek(0)方法调用将其倒回至开头。
当您完成文件的处理并关闭它后,如果其中的数据量过多,则会自动将其从磁盘中删除,并将其移到物理文件中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)