我正在编写一个 Python 脚本,该脚本需要创建大约 50 个不同的临时文件,这些文件在脚本执行过程中都经常添加并在最后合并。我确信该tempfile
模块可以满足我的需求,但我无法通过阅读文档来弄清楚如何做。
我想使用临时文件——而不是变量——来节省系统内存,因为这些数据块随着脚本处理数以万计的其他文件而变大。
以下代码块是我当前用来在非临时目录中创建这些文件(临时)的 hack:
item = (string from another file) # string must id file for future use
tmpfile = 'tmpfiles/' + item
if item not in totalitems:
totalitems.add(item)
with open(tmpfile, 'w') as itemfile:
output = some stuff
tmpfile.write(output)
else:
with open(tmpfile, 'a') as itemfile:
output = different stuff
tmpfile.write(output)
我想我需要的是tempfile.NamedTemporaryFile()
。根据文档:
该名称可以从文件对象的名称成员中检索。
不幸的是,我不明白那是什么意思。当我在我正在处理的文件中再次遇到相应的“项目”时,我只需要能够再次调用每个文件。我认为这是相当直截了当的,我只是很密集。万一这很重要,我有适用于 Python 2.7.1 和 3.2.3 的这个脚本的版本。我只需要一个或另一个工作;我创建这两个只是作为一个学习练习。