Python:TemporaryFile在读取时返回空字符串

Pic*_*els 3 python django

我需要从字符串创建一个文件,以便我可以将它用作Django中电子邮件的附件.经过一些谷歌搜索后,我找到了带有TemporaryFile的临时文件模块,但它没有按照我的预期工作.

以下代码返回一个空字符串.

>>> f = tempfile.TemporaryFile()
>>> f.write('foobar')
>>> f.read()
''
Run Code Online (Sandbox Code Playgroud)

Spi*_*ike 7

当你调用read时,它试图从它停止的位置读取,它位于文件的末尾.在阅读之前,您需要跳转到文件的开头:

f.seek(0)
f.read()
Run Code Online (Sandbox Code Playgroud)

如果你需要再次写作,如果你不想覆盖你的东西,你应该在写作之前跳到最后:

f.seek(0, os.SEEK_END)
f.write('some stuff')
Run Code Online (Sandbox Code Playgroud)