Gre*_*ory 36 python temporary-files
我正在开发一个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)
Run Code Online (Sandbox Code Playgroud)
我想我需要的是tempfile.NamedTemporaryFile().根据文件:
可以从文件对象的名称成员中检索该名称.
不幸的是,我不明白这意味着什么.当我在我正在处理的文件中再次运行其相应的"项目"时,我只需要能够稍后再次调用每个文件.我认为这是相当直接的,我只是在密集.如果它很重要,我有Python 2.7.1和3.2.3的这个脚本的版本.我真的只需要一个人或另一个人去工作; 我创造了两个作为学习练习.
Lev*_*von 43
"可以从文件对象的名称成员中检索该名称."
意味着您可以获取创建的临时文件的名称,如下所示:
In [4]: import tempfile
In [5]: tf = tempfile.NamedTemporaryFile()
In [6]: tf.name # retrieve the name of the temp file just created
Out[6]: 'c:\\blabla\\locals~1\\temp\\tmptecp3i'
Run Code Online (Sandbox Code Playgroud)
注意:默认情况下,文件将在关闭时删除.但是,如果delete参数为False,则不会自动删除该文件.有关更多信息,请参阅有关此文档的Python文档.
由于您可以检索要创建的50个临时文件中的每个文件的名称,因此可以在以后再次使用它们之前将它们保存在列表中(如您所说).只需确保相应地设置delete值,以便在关闭文件时文件不会消失(如果您打算关闭,稍后重新打开它们).
我在这里更详细地解释了如何创建临时文件名这里是在Python中生成随机文件名的最佳方法
小智 5
您可以设置文件扩展名和文件目录:
tmpfilepath = tempfile.NamedTemporaryFile(dir= 'myDir', suffix='.xlsx')
Run Code Online (Sandbox Code Playgroud)
这将创建一个带有路径的文件:
'...\myDir\tmpstfl1lam.xlsx'
| 归档时间: |
|
| 查看次数: |
56506 次 |
| 最近记录: |