通常,当有人发布他们的代码时,人们会补充说“你with open('filename') as f
现在应该使用语法”。我同意大多数老式f = open()
语句都没有附带.close()
的 ,我什至回答了对“隐式关闭”的依赖是他们编程问题的全部原因的问题。
但是,在某些情况下,将代码嵌套在with
块中似乎会给编写代码带来其他不便。例如我有时喜欢在开头用一个标志来表示writefile = True
。这让我只在要使用文件时打开和关闭文件,同时保持相同的处理线程。在代码的不同位置,我可以打印到屏幕或写入文件。(我意识到我会stdout
在开头打开文件并使用该方法。)
我的问题是:除了不必显式关闭文件之外,还有其他理由使用with
语法来处理文件,尤其是输出文件吗?(“更多pythonic”本身并不是一个原因。)如果这是重复的,我会很高兴指出这一点,但我自己找不到。