保存临时文件

5 投票
2 回答
2297 浏览
提问于 2025-04-16 02:18

我正在用 xlwt 这个库在 Python 中创建一个 Excel 表格。其实你可以用其他任何能生成文件的工具来替代它;我想对这个文件做的事情才是最重要的。

from xlwt import *

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

我有两个使用场景:一个是把它直接发送到用户的浏览器,另一个是把它作为附件发到邮件里。在这两种情况下,这个文件只需要在生成它的网络请求期间存在。

我想说的是,之所以发起这个讨论,是因为把文件保存到真实的文件系统上会遇到一些麻烦(比如防止文件被覆盖,完成后清理文件)。有没有什么地方可以“保存”这个文件,让它只存在于内存中,并且只在请求期间有效呢?

2 个回答

1

根据你的建议,我来概括一下答案:如果“其他任何生成文件的东西”不接受类似文件的对象,而只接受文件路径,那么你可以通过使用 tempfile.NamedTemporaryFile 来减少麻烦。

5

cStringIO

(或者如果需要可变的,可以使用mmap)

撰写回答