经常有人发布他们的代码时,会附带一句话说“现在应该使用
然而,在某些情况下,将代码嵌套在
我的问题是:除了不必显式关闭文件外,是否还有其他原因要使用
with open('filename') as f
语法。”我同意大多数老式f = open()
语句没有相应的.close()
,我甚至回答过这种依赖“隐式关闭”导致编程问题的问题。然而,在某些情况下,将代码嵌套在
with
块内似乎会在编写代码时产生其他不便之处。例如,我有时喜欢在开头使用一个标志writefile=True
。这让我只有在需要使用文件时才打开和关闭文件,同时保持相同的处理线程。在代码中的各个地方,我可以将内容打印到屏幕或写入文件。(我意识到我会在开头打开stdout
或文件,然后使用那种方法)。我的问题是:除了不必显式关闭文件外,是否还有其他原因要使用
with
语法来处理文件,特别是输出文件?(仅仅因为“更符合Python风格”并不是一个原因。)如果这是一个重复的问题,我很乐意让别人指出来,但我自己找不到。
with
没有其他的好处。如果您的设计更适合使用open
和close
组合,那么请随意使用它。 - RickyA