![](/img/trans.png)
[英]How to use tempfile.NamedTemporaryFile() to save an image?
[英]How to use tempfile.NamedTemporaryFile()?
我正在開發一個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的這個腳本的版本。 我真的只需要一個人或另一個人去工作; 我創造了兩個作為學習練習。
“可以從文件對象的名稱成員中檢索該名稱。”
意味着您可以獲取創建的臨時文件的名稱,如下所示:
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'
注意 :默認情況下,文件將在關閉時刪除。 但是,如果delete
參數為False,則不會自動刪除該文件。 有關更多信息,請參閱有關此文檔的Python文檔 。
由於您可以檢索要創建的50個臨時文件中的每個文件的名稱,因此可以在以后再次使用它們之前將它們保存在列表中(如您所說)。 只需確保相應地設置delete
值,以便文件在關閉時不會消失(如果您打算關閉,稍后再重新打開它們)。
我在這里更詳細地解釋了如何創建臨時文件名這里是在Python中生成隨機文件名的最佳方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.