【问题标题】:Do I have to use close() if I used open() as argument in function? [duplicate]如果我在函数中使用 open() 作为参数,是否必须使用 close()? [复制]
【发布时间】:2020-02-02 09:48:17
【问题描述】:

我在我的程序中经常使用文件,有时我只打开一次作为参数使用,如下所示: data = json.load(open("data.json", 'r')) 我是否必须先打开它,然后将其用作参数并关闭?在这种情况下,Python 会自动关闭它吗? (我使用的是 Python 3.7)

【问题讨论】:

  • 如果您没有明确关闭它,它将保持打开状态,直到进程退出,您通常希望避免这种情况,因为它会消耗系统资源。如果愿意,您还可以将调用嵌入到 with open(...) as fh: 中,在这种情况下,它会在 with 语句的末尾隐式关闭。

标签: python python-3.x


【解决方案1】:

您没有 关闭文件,但如果程序继续运行,我会导致意外行为和/或内存泄漏。 Python 提供了with statement 来自动关闭它

with open("data.json", 'r') as f:
    data = json.load(f)

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 2013-10-29
    • 2019-12-22
    相关资源
    最近更新 更多