基本上我想将列表保存到python,然后当程序启动时,我想从文件中检索数据并将其放回列表中。
到目前为止,这是我正在使用的代码
mylist = pickle.load("save.txt")
...
saveToList = (name, data)
mylist.append(saveList)
import pickle
pickle.dump(mylist, "save.txt")
但它只返回以下错误:TypeError:文件必须具有'read'和'readline'属性
答案 0 :(得分:4)
您需要一个文件对象,而不仅仅是文件名。试试这个来保存:
pickle.dump(mylist, open("save.txt", "wb"))
或更好,以保证文件正确关闭:
with open("save.txt", "wb") as f:
pickle.dump(mylist, f)
然后这个用于加载:
with open("save.txt", "rb") as f:
mylist = pickle.load(f)
此外,我建议使用与.txt
不同的扩展名,例如.dat
,因为内容不是纯文本。
答案 1 :(得分:1)
with open("save.txt", "w") as f:
pickle.dump(f, mylist)
请参阅python pickle文档以了解用法。
答案 2 :(得分:1)
pickle.dump接受文件对象作为参数而不是文件名字符串
pickle.dump(mylist, open("save.txt", "wb"))