因此,对于创建文件,我使用以下命令:
fileHandle = open('fileName', 'w')
然后将内容写入文件,关闭文件。在下一步中,我处理文件。在程序的最后,我得到一个需要删除的“物理文件”。
有没有一种方法可以编写行为与“物理”文件完全相同的“虚拟”文件(允许以相同的方式对其进行操作),但在Python运行结束时不存在该文件?
您可能要考虑使用a tempfile.SpooledTemporaryFile,它可以为您提供两全其美的意义,因为它将首先创建一个基于内存的临时虚拟文件,但是如果保存在内存中的数据超过指定的数量,它将自动切换到基于物理磁盘的文件尺寸。
tempfile.SpooledTemporaryFile
另一个不错的功能是(使用内存时)它将自动使用io.BytesIO或,io.StringIO具体取决于使用的是什么mode—允许您对其读写Unicode字符串或二进制数据(字节)。
io.BytesIO
io.StringIO
mode
唯一棘手的部分可能是您需要避免在步骤之间关闭文件,因为这样做可能会导致文件从内存或磁盘中删除。相反,您可以使用文件seek(0)方法调用将其倒回至开头。
seek(0)
当您完成文件的处理并关闭它后,如果其中的数据量过多,则会自动将其从磁盘中删除,并将其移到物理文件中。