编程语言
首页 > 编程语言> > python – 你可以在创建文件后从NamedTemporaryFile更改删除标志吗?

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