Skip to main content
 首页 » 编程设计

python之打开(文件)之它是否保持打开状态

2025年05月04日12jackei

我正在学习如何使用 open(file, 'r') 并且想知道:

如果我说 open(file1, 'r') 然后尝试再次使用 open() 访问同一个文件,它会工作吗?因为我从来没有对它执行 close() 。它是否在打开后立即关闭,因为它没有分配给任何变量?

请您参考如下方法:

在 cpython 中,如果您使用 open() 而不将结果分配给变量,文件将立即再次关闭。在其他 python 实现(IronPython、jython 等)上,情况可能并非如此;如果未明确关闭,则在垃圾收集器删除时关闭文件对象。

虽然您可以多次打开文件,因此无论文件打开与否,您始终可以稍后再次将相同的文件名传递给 open()。

通常最好使用 with 语句将打开的文件用作上下文管理器。当 with 语句下缩进的代码块完成时,文件会自动为您关闭:

with open(filename, 'r') as f: 
    # Do things with f 
 
# f is automatically closed