在Python中,如果您在未调用的情况下打开文件close(),或者关闭文件但未使用try- finally或" with"语句,这是一个问题吗?或者它是否足以作为编码实践依赖Python垃圾收集来关闭所有文件?例如,如果有人这样做:
for line in open("filename"):
# ... do stuff ...
Run Code Online (Sandbox Code Playgroud)
...这是一个问题,因为文件永远不会被关闭,并且可能发生一个阻止它被关闭的异常?或者它肯定会在for声明结束时关闭,因为文件超出了范围?
执行以下操作并不显式处理文件对象并调用其close()方法是不好的做法吗?
for line in open('hello.txt'):
print line
Run Code Online (Sandbox Code Playgroud)
注意 - 这是针对尚未拥有该with语句的Python版本.
我问,因为Python文档似乎推荐这个: -
f = open("hello.txt")
try:
for line in f:
print line
finally:
f.close()
Run Code Online (Sandbox Code Playgroud)
这似乎比必要的更冗长.