Python保存列表并从文件中读取数据

时间:2016-10-19 14:10:54

标签: python

基本上我想将列表保存到python,然后当程序启动时,我想从文件中检索数据并将其放回列表中。
到目前为止,这是我正在使用的代码

mylist = pickle.load("save.txt")
...
saveToList = (name, data)
mylist.append(saveList)
import pickle
pickle.dump(mylist, "save.txt")

但它只返回以下错误:TypeError:文件必须具有'read'和'readline'属性

3 个答案:

答案 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"))