我对with open
vs f = open()
和f.close()
有疑问。
我一直在使用with open
。
每个(不包括Python版本)的专业版和内容是什么? 什么时候使用适当的场景以及为什么?
编辑:我问这个问题,因为在打开/关闭时使用'with'似乎有NFS(容易出现更多过时的NFS文件句柄错误)错误任何人对此都有任何见解吗?
答案 0 :(得分:5)
仅 with
语句的合理替代方法是使用
f = open(...)
try:
# do stuff with f
finally:
f.close()
并且正好添加了with语句以添加此常见模式的语法。所以,这是一个明智的选择。
答案 1 :(得分:2)
更好。
来自file.close()上的文档:http://docs.python.org/2/library/stdtypes.html#file.close
从Python 2.5开始,如果使用with语句,则可以避免必须显式调用此方法。例如,以下代码将在退出with块时自动关闭f:
from __future__ import with_statement # This isn't required in Python 2.6
with open("hello.txt") as f:
for line in f:
print line,
在旧版本的Python中,您需要这样做才能获得相同的效果:
f = open("hello.txt")
try:
for line in f:
print line,
finally:
f.close()