gpt4 book ai didi

python - 在 python 中 json.load 文件的等效方法?

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:01 25 4
gpt4 key购买 nike

我经常在代码中看到这个:

with open(file_path) as f:
json_content = json.load(f)

而且很少这样:

json_content = json.load(open(file_path))

我想知道后者是否是反模式或者这两个版本之间有什么区别。

最佳答案

json.load(open(file_path)) 依赖 GC 来关闭文件。这不是一个好主意:如果有人不使用 CPython,垃圾收集器可能不会使用引用计数(它会立即收集未引用的对象),但是例如一段时间后才收集垃圾。

由于当关联对象被垃圾收集或显式关闭(来自上下文管理器的 .close().__exit__())时文件句柄关闭,文件将在 GC 启动之前保持打开状态。

使用 with 确保文件在 block 离开时立即关闭 - 即使在该 block 内发生异常,因此它应该始终是任何实际应用程序的首选。

关于python - 在 python 中 json.load 文件的等效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com