【发布时间】:2011-10-28 10:11:36
【问题描述】:
以这种方式打开文件后如何在python中关闭文件:
line = open("file.txt", "r").readlines()[7]
【问题讨论】:
-
你没有。在垃圾收集期间或程序结束时,您让 Python 为您关闭它。通常这不是问题,这就是为什么 Python 文档中的许多代码示例都是这样做的。
-
@Tim Pietzcker:在 CPython 中,您可以依赖引用计数,但这是一个在 PyPy 或 Jython 等其他实现中不起作用的实现细节。在这种情况下,打开太多文件可能会耗尽可用的文件描述符。
-
@eryksun:不,你不能依赖它!您的文件对象可能是引用循环的一部分,在这种情况下,当绑定超出范围时它不会被销毁。然后它会一直存在,直到循环垃圾收集器处理它,这可能是未来很长一段时间。