如果你想臨時文件在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