gpt4 book ai didi

python - 什么时候需要关闭文件,什么时候不在 python 中?

转载 作者:太空狗 更新时间:2023-10-30 01:21:27 25 4
gpt4 key购买 nike

我试图编写以负责任的方式管理资源的代码。我知道确保文件在使用后关闭的常见习惯用法是

with open("filename.txt", 'r') as f:
# ...use file `f`...

但是,我经常看到人们这样做:

data = cPickle.load(open("filename.pkl", 'r'))

我想知道这是一种正确的方法吗?Python 是否总是关闭 filename.pkl,即使 cPickle 抛出异常?一些解释(或指向解释的文章的指针)这是否安全?

最佳答案

Python 不会自动为您关闭文件,因为它不知道您何时使用完文件对象。您需要显式关闭文件或将代码(包含 open(...) 函数)包装在 with 语句中。这是关于 pickle 模块的 python 文档示例:

import pprint, pickle

pkl_file = open('data.pkl', 'rb')

data1 = pickle.load(pkl_file)
pprint.pprint(data1)

data2 = pickle.load(pkl_file)
pprint.pprint(data2)

pkl_file.close()

并且使用 with 这是一种更 Pythonic 的方法,您可以:

with open("filename.pkl", 'r') as f:
data = cPickle.load(f)

关于python - 什么时候需要关闭文件,什么时候不在 python 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31229890/

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