python – 你可以在创建文件后从NamedTemporaryFile更改删除标志吗?
作者:互联网
如何在创建此类文件后更改NamedTemporaryFile中的删除标志?
为什么?虽然大多数时候我不需要保留临时文件,但如果我从代码中检测到错误,我想保留它们以便能够分析它们.
解决方法:
对于现在搜索这个问题的任何人,至少对于Python 3,在实例化NamedTemporaryFile之后更改删除不会改变其初始行为,因为实际标志存储在名为_closer的对象(这是_TemporaryFileCloser实例)中.请参阅Python中的tempfile.py,因为official Python docs没有提及任何内容.
所以你要么改变这个未记录的属性:
f = tempfile.NamedTemporaryFile(delete=True)
# f.delete = False # This doesn't change anything
f._closer.delete = False # undocumented
f.close() # the file won't be deleted
或者您始终使用NamedTemporaryFile创建(delete = False),然后如果您不再需要该文件,请手动删除该文件.
标签:python,temporary-files 来源: https://codeday.me/bug/20190902/1793192.html