Python GC也会关闭文件吗?

Python GC也会关闭文件吗?,第1张

Python GC也会关闭文件吗?

取自文档(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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存