【问题标题】:What are the consequences of not closing open files in Python? [duplicate]在 Python 中不关闭打开的文件有什么后果? [复制]
【发布时间】:2013-04-11 11:50:37
【问题描述】:

我发现在 Python 中处理文件的最佳做法是使用 with 块:

with open('file', 'r') as fi:
 text = fi.read()

with open('file', 'w') as fi:
  fi.write(text)

这样,文件在您完成后会自动关闭。但我变得懒惰,在快速的一次性脚本中,我倾向于这样做:

text = open('file', 'r').read()
open('file', 'w').write(text)

现在显然,如果我正在编写 Real Software™,我应该使用前者,但我想知道后者有什么后果(如果有的话)?

【问题讨论】:

    标签: python file io


    【解决方案1】:

    在 CPython 上:无;当文件的引用计数降至 0 时,文件将被关闭,这是在 .read().write() 调用返回时立即关闭。

    在其他不使用引用计数的 Python 实现中,文件将保持打开状态,直到垃圾回收。

    【讨论】:

      猜你喜欢
      • 2013-04-11
      • 2019-10-06
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2022-07-06
      • 2012-10-26
      • 1970-01-01
      • 2013-07-01
      相关资源
      最近更新 更多