【发布时间】:2012-11-24 03:05:36
【问题描述】:
可能重复:
Is close() necessary when using iterator on a Python file object
for line in open("processes.txt").readlines():
doSomethingWith(line)
以该代码为例。没有什么可以调用 close() 的。那么它会自动关闭吗?
【问题讨论】:
-
如果你从不关闭它,它会在内存中保持打开状态。它不会自动关闭。
-
那么这是一个不可取的代码 sn-p 吗?我的印象是格式很常见。除非我只是跟着它 close("processes.txt")...?当然……
-
关闭阅读器就可以了。我建议使用 Snakes 提到的:with() -> 这将保证您在完成文件所需的操作后关闭阅读器。
-
我不明白。如果我们没有对文件对象的引用,并且我们完成了从中读取行 - 我的意思是,我们不再在
for的范围内,那么 python 的垃圾收集器必须清理它,对吗?还是不行?