如何在python中关闭文件而不指定变量

如何在python中关闭文件而不指定变量,python,file-io,Python,File Io,以这种方式打开文件后,如何关闭python中的文件: line=open(“file.txt”,“r”).readlines()[7]有几种方法,例如您可以只使用f=open(…)和delf 如果您的Python版本支持它,您还可以使用with语句: with open("file.txt", "r") as f: line = f.readlines()[7] 这会自动关闭您的文件 编辑:我不明白为什么我在解释如何创建正确的文件处理方法时被否决。也许“不指定变量”并不可取。最好使用上

以这种方式打开文件后,如何关闭python中的文件:


line=open(“file.txt”,“r”).readlines()[7]

有几种方法,例如您可以只使用
f=open(…)
delf

如果您的Python版本支持它,您还可以使用
with
语句:

with open("file.txt", "r") as f:
    line = f.readlines()[7]
这会自动关闭您的文件


编辑:我不明白为什么我在解释如何创建正确的文件处理方法时被否决。也许“不指定变量”并不可取。

最好使用上下文管理器。这将在块结束时自动关闭文件,不依赖于garbarge集合的实现细节

with open("file.txt", "r") as f:
    line = f.readlines()[7]

看看这个答案,你不知道。您可以让Python在垃圾收集期间或程序结束时关闭它。通常这不是一个问题,这也是Python文档中许多代码示例采用这种方式的原因。@Tim Pietzcker:在CPython中,您可以依赖引用计数,但这是一个在PyPy或Jython等其他实现中不起作用的实现细节。在这种情况下,打开过多的文件可能会耗尽可用的文件描述符。@eryksun:不,你不能依赖它!您的文件对象可能是引用周期的一部分,在这种情况下,当绑定超出范围时,它不会被销毁。然后它将继续存在,直到循环垃圾收集器处理完它,这可能是一段很长的时间。他明确地询问如何在不分配变量的情况下完成它。下面是@Tim Pietzcker写的内容。我知道这个方法,但是我想知道是否有其他方法可以解决这个问题,正如我在标题中提到的,不给文件实例分配变量。