Kim*_*ais 11 python with-statement temporary-files python-internals
对我来说,最惯用的方式tempfile.mkstemp()是:
with tempfile.mkstemp() as fd, filename:
pass
Run Code Online (Sandbox Code Playgroud)
然而,这显然(?)提高了 AttributeError: __exit__
os.close(fd)使用try-finally明确调用是解决这个问题的一种简单方法,但感觉就像违反一样 - 应该有一个 - 最好只有一个 - 明显的方法来做到这一点.
有没有办法"修复"这个tempfile或者有没有理由说明为什么这样实现?
在tempfile模块中,还有其他更适合的方法来创建临时文件,例如TemporaryFile()和其他文件.
特别是,如果您不希望删除该文件,请使用NamedTemporaryFile(),为其提供delete=False参数.