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

时间:2018-11-04 23:10:37

标签: 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())

1 个答案:

答案 0 :(得分:5)

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

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

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