取自文档(python 3.6):
如果未使用with关键字,则应调用f.close()关闭文件并立即释放文件使用的所有系统资源。如果您未明确关闭文件,
Python的垃圾回收器最终将破坏该对象并为您关闭打开的文件
,但该文件可能会保持打开状态一段时间。另一个风险是,不同的Python实现将在不同的时间进行清理。
因此,是的,文件将自动关闭,但是为了控制该过程,您应该自己关闭或使用以下
with语句:
with open('foo') as foo_file for line in foo_file.readlines(): print line.rstrip()
foo_file``with区块结束后将被固定
在python 2.7
docs中,措辞不同:
处理完文件后,调用f.close()将其关闭并释放打开文件占用的所有系统资源。调用f.close()之后,尝试使用文件对象将自动失败。
因此,我假设您不应该依赖垃圾收集器自动为您关闭文件,而只需手动/使用
with
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)