tem*_*ame 4 python file-io scope
for line in open("processes.txt").readlines():
doSomethingWith(line)
Run Code Online (Sandbox Code Playgroud)
以该代码为例.没有什么可以调用close().它会自动关闭吗?
取消分配相应对象时,文件将关闭.你给出的样本取决于那个; 没有对象的引用,因此将删除该对象并关闭该文件.
需要注意的重要一点是,没有保证何时删除对象.使用CPython,您可以将引用计数作为内存管理的基础,因此您可以期望文件立即关闭.在Jython中,垃圾收集器不保证在任何特定时间(甚至根本不运行)运行,因此您不应指望文件被关闭,而应该手动关闭文件或(更好)使用with语句.
AFAIK他们没有.要进行自动关闭,您需要使用上下文管理器,例如with
尽管可以通过垃圾收集和关闭来回收对象本身,但是没有确定的时间来进行垃圾收集.
with open("processes.txt") as openfile:
<do stuff>
Run Code Online (Sandbox Code Playgroud)