Python 3 中未关闭的打开文件有什么问题?

What is wrong with unclosed opened file in Python 3?

假设我有以下代码试图从列表中打印出一些文件并使用单个循环变量循环遍历每个文件。在外循环的每次迭代之后,我都失去了对刚刚打印出来的打开文件的引用。嗯.. 我想知道这段代码到底有多糟糕...如果系统定义了最大数量打开的文件...等等

file_names = ["a.txt","b.txt","c.txt"]
for file_name in file_names:
    file = open(file_name)
    for line in file:
        print(line)
    print("\n\n\n")

您可以在此处阅读有关不良反应的信息:Is explicitly closing files important?

在大多数情况下它可能会起作用,直到它不起作用为止;)

为避免与未关闭的文件引用相关的任何问题,您应该使用 with open(file_name) as file:,如下所述:https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files