2010-08-04 27 views
5

Bir Excel elektronik tablosu oluşturmak için python'da xlwt kullanıyorum. Bunu bir dosya üreten hemen hemen her şey için değiştirebilirsiniz. önemli olan dosya ile yapmak istediğim şey bu. Ben kullanıcının tarayıcısına dışarı akışı ya da ben bir e-posta eki: Ben dosyası için iki kullanım durumları içinGeçici bir dosyayı kaydetme

from xlwt import * 

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

Ben istiyorum. Her iki durumda da, dosyanın sadece onu üreten web isteğinin süresi mevcut olmalıdır.

Neler yapıyorum, bu iş parçacığı başlatmanın nedeni dosya sistemindeki gerçek bir dosyaya kaydetme işleminin kendi engelleri vardır (üzerine yazma işlemini durdurma, dosyayı bir kez bitti temizleme). Sadece hafızada yaşadığı ve sadece talep süresi boyunca "saklayabileceğim" bir yer var mı?

cevap

5

cStringIO

(veya mmap o değişken olmalıdır varsa) önerdiği gibi, cevabı Genelleştirirsek

+0

Büyük sorunları kullanarak sorunu azaltabilirsiniz. Böyle bir şey hakkında düşünmüştüm ama xlwt'nin sadece bir dosya adı ve bir nesne alacağını (yanlış) varsaydı. – Oli

+0

Polimorfizm ftw! – katrielalex

+0

Hmmm ... ortaya çıkan dosya görüntüsünü değiştirirseniz, lütfen okumaya çalışırken sorun bildirmeyin. –

1

: "Dosya oluşturur başka bir şey" gibi bir dosya benzeri bir nesne kabul etmeyecektir bir dosya yolu olarak, o zaman tempfile.NamedTemporaryFile

İlgili konular