【发布时间】:2018-10-26 19:51:48
【问题描述】:
如果我想打开一个文件,解压其中的一个对象,然后再覆盖它,可以直接使用吗
data = {} #Its a dictionary in my code
file = open("filename","wb")
data = pickle.load(file)
data["foo"] = "bar"
pickle.dump(data,file)
file.close()
或者我必须先使用“rb”,然后再使用“wb”(对每个使用 with 语句),这就是我现在正在做的事情。请注意,在我的程序中,在打开文件和关闭文件之间有一个散列算法,这是字典数据的来源,我基本上希望能够只打开一次文件而不必使用语句执行两次
【问题讨论】:
-
你试过了吗?当您尝试读取以写入模式打开的文件时会发生什么?
-
当然……有可能。
-
好吧,我已经测试过了,显然pickle会引发阅读错误:
-
io.UnsupportedOperation: 读取