【问题标题】:Is it necessary to close files after writing JSON data to them in Python在Python中将JSON数据写入文件后是否需要关闭文件
【发布时间】:2016-07-29 23:10:03
【问题描述】:

如果我使用:

with open(Name, 'w') as outfile:
    json.dump(json_object, outfile)

之后是否需要使用file.close()方法?

在一般情况下,例如在 python 中将普通字符串写入文件,不使用 file.close() 方法的后果是什么?

【问题讨论】:

  • with 上下文管理器在范围退出时关闭。

标签: python json python-2.7 file


【解决方案1】:

使用'with'结构的好处恰恰是你不必担心在这里关闭文件,因为当文件超出范围时它会自动关闭。

【讨论】:

    【解决方案2】:

    在 cpython 中,文件在引用计数为零时关闭,即使您不使用 with 语句也是如此。根据您使用文件对象的方式,您冒着循环引用阻止这种情况发生的风险。但是在某些情况下,例如某些信号不会发生定期清理。在这种情况下,您可能会丢失本地进程文件缓冲区中尚未刷新的任何数据。

    风险最小的解决方案是尽可能使用with 语句,否则使用清理文件的try/finally 块。

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 2017-07-13
      • 2013-10-01
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多