2010-08-04 130 views
5

我使用Python中xlwt創建一個Excel電子表格。您幾乎可以將其轉換爲生成文件的其他任何內容;這正是我想要處理的重要文件。保存臨時文件

from xlwt import * 

w = Workbook() 
#... do something 
w.save('filename.xls') 

我想我有兩個使用案例的文件:我流出到用戶的瀏覽器或我附加到一封電子郵件。在這兩種情況下,文件只需要存在生成它的Web請求的持續時間。

我得到的,之所以起這個線程什麼是保存到文件系統中的實際文件有它自己的障礙(停止覆蓋,清理一次完成的文件)。有什麼地方可以將它「保存」在只存在於內存中的地方,並且僅在請求期間存在?

回答

5

cStringIO

(或mmap如果它應該是可變的)

+0

偉大的東西減少了麻煩。我曾經想過這樣的事情,但假設(錯誤地)xlwt只會採取文件名而不是對象。 – Oli 2010-08-04 13:53:54

+0

ftw多態性! – katrielalex 2010-08-04 13:56:22

+0

嗯......如果你改變了生成的文件圖像,請不要報告試圖閱讀它的問題。 – 2010-08-04 23:10:44

1

要概括的答案,如你所說:如果「其他任何東西,生成一個文件」不會接受一個類文件對象還有一個文件路徑,那麼你可以通過使用tempfile.NamedTemporaryFile