python - 单独的 open() 是否使文件句柄保持打开状态?

标签 python python-3.x

<分区>

是否会在文件句柄执行完成后调用 open() 而不将其分配给变量来关闭文件句柄?

import json
_keyfile = json.load(open("s3_key.json", "r"))

如果你在上面调用 .read() 会怎么样?

import json
_keyfile = json.loads(open("s3_key.json", "r").read())

最佳答案

根据 python docs ,文件保持打开状态,直到您对文件对象调用 close() 或垃圾收集器启动并为您关闭它。

因此,在读取文件时更喜欢使用上下文管理器(即 with 语句),因为它们会为您关闭文件。

import json
with open("s3_key.json", "r") as f:
    _keyfile = json.load(f)
# f is now closed

关于python - 单独的 open() 是否使文件句柄保持打开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146404/

相关文章:

Python - 在末尾格式化整数

Python - 每个日期和月份的所有非零列的计数 PANDAS

python - matplotlib.pyplot.axes.bbox 的定义

arrays - 高效堆叠和连接 NumPy 数组

python - 为什么 concurrent.futures 不复制参数?

python - 用 Python 计算航空公司排名 - NameError : name is not defined

python - 如何为binary_crossentropy、activation=sigmoid和activation=softmax指定model.compile?

python - 在插入事件之前插入新日历 Google API 和删除日历事件(Python 中)

python - 通过factory-boy Factory传递参数到SubFactory而不指定

python - f.readline() 不捕获文件的最后一行