如何使用tempfile.NamedTemporaryFile()函数?

9 浏览
0 Comments

如何使用tempfile.NamedTemporaryFile()函数?

我正在编写一个Python脚本,需要创建大约50个不同的临时文件,这些文件在脚本执行过程中经常被追加,并在最后合并。我相信tempfile模块可以满足我的需求,但是在阅读文档时我没有弄清楚如何使用。

我想使用临时文件而不是变量来节省系统内存,因为这些数据块在处理成千上万个其他文件时会变得很大。

以下代码片段是我目前使用的“非临时”文件在一个非临时目录中创建这些文件的hack方法:

item =(来自另一个文件的字符串)   #字符串必须为文件标识
tmpfile ='tmpfiles/' + item
if item not in totalitems:
   totalitems.add(item)
   with open(tmpfile,'w') as itemfile:
      output =一些内容
      tmpfile.write(output)
else:
   with open(tmpfile,'a') as itemfile:
      output =不同的内容
      tmpfile.write(output)

我认为我需要的是tempfile.NamedTemporaryFile()。根据文档的说明:

该名称可以从文件对象的name成员中检索。

不幸的是,我不明白这是什么意思。我只需要在以后再次遇到正在处理的文件中的相应“item”时能够调用每个文件。我认为这是相当简单明了的,我可能只是太愚蠢了。如果有关系的话,我为Python 2.7.1和3.2.3版本都有这个脚本。我只需要其中一个工作就可以了;我创建了两个版本只是为了学习的目的。

0