我正在学习如何使用 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
