2010-08-04 8 views
5

J'utilise xlwt en python pour créer une feuille de calcul Excel. Vous pouvez échanger ceci pour presque n'importe quoi d'autre qui génère un fichier; c'est ce que je veux faire avec le fichier qui est important.Enregistrement d'un fichier temporaire

from xlwt import * 

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

Je veux J'ai deux cas d'utilisation du fichier: streamer dehors au navigateur de l'utilisateur ou je le joindre à un e-mail. Dans les deux cas, le fichier doit uniquement exister la durée de la requête Web qui le génère. Ce que j'obtiens, la raison de démarrer ce thread est l'enregistrement d'un vrai fichier sur le système de fichiers a ses propres obstacles (l'arrêt de l'écrasement, le nettoyage du fichier une fois terminé). Y a-t-il quelque part où je pourrais le "sauver" là où il ne vit qu'en mémoire et seulement pour la durée de la demande?

Répondre

5

cStringIO

(ou mmap si elle doit être mutable)

+0

Great stuff. J'avais pensé à quelque chose comme ça mais supposé (incorrectement) que xlwt ne prendrait qu'un nom de fichier et pas un objet. – Oli

+0

Polymorphisme ftw! – katrielalex

+0

Hmmm ... si vous mutez l'image du fichier résultant, ne signalez pas les problèmes de lecture. –

1

Généraliser la réponse, comme vous le suggérez: Si le « tout ce qui génère un fichier » n'acceptera pas un objet de type fichier comme ainsi comme un chemin de fichier, alors vous pouvez réduire les tracas en utilisant tempfile.NamedTemporaryFile

Questions connexes