取自文档(python 3.6):
如果未使用with关键字,则应调用f.close()关闭文件并立即释放文件使用的所有系统资源。如果您未明确关闭文件, ,但该文件可能会保持打开状态一段时间。另一个风险是,不同的Python实现将在不同的时间进行清理。
因此,是的,文件将自动关闭,但是为了控制该过程,您应该自己关闭或使用以下with
语句:
with open('foo') as foo_file
for line in foo_file.readlines():
print line.rstrip()
foo_file``with
区块结束后将被固定
在python 2.7docs中,措辞不同:
处理完文件后,调用f.close()将其关闭并释放打开文件占用的所有系统资源。调用f.close()之后,尝试使用文件对象将自动失败。