您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python GC也会关闭文件吗?

Python GC也会关闭文件吗?

取自文档(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()之后,尝试使用文件对象将自动失败。

因此,我假设您不应该依赖垃圾收集器自动为您关闭文件,而只需手动/使用 with

python 2022/1/1 18:47:54 有336人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶