如果你想临时文件在Python中,Python的标准库中有一个名为tempfile的模块。如果要启动其他程序以对文件进行操作,请使用tempfile.mkstemp()创建文件,使用os.fdopen()访问mkstemp()为您提供的文件描述符。
顺便说一下,你说你正在运行Python程序中的命令?你应该几乎肯定会使用subprocess模块。
所以你可以很愉快地编写代码,看起来像:
import subprocess
import tempfile
import os
(fd, filename) = tempfile.mkstemp()
try:
tfile = os.fdopen(fd, "w")
tfile.write("Hello, world!\n")
tfile.close()
subprocess.Popen(["/bin/cat", filename]).wait()
finally:
os.remove(filename)
运行,你应该发现cat
命令工作得很好,但临时文件是在finally
块删除。请注意,您已将删除mkstemp()自动返回的临时文件 - 库无法知道您何时完成它! (编辑:我曾假设NamedTemporaryFile完成了你之后的工作,但那可能不是那么方便 - 当临时文件对象关闭时文件立即被删除,并让其他进程在你之前打开文件已关闭它将无法在某些平台上运行,特别是Windows。对不起,我的部分失败。)
我编辑你的问题,试图使之更加清晰。让我知道,如果我解释错误的东西! – culix 2012-09-01 10:12:53