import pickle
variety = ["sweet", "box", "cat"]
shape = ["back","spear", "log"]
pickleFile = open("pickle.txt", 'w')
pickle.dump(variety, pickleFile)
pickle.dump(shape, pickleFile)
pickleFile.close()
pickleFile = open("pickle.txt", 'r')
test = pickle.load(pickleFile)
shape = pickle.load(pickleFile)
print ("variety : ", test, " shape : ", shape)
pickleFile.close()
当我运行上面的代码时,我得到以下错误
line 6, in <module>
pickle.dump(variety, pickleFile)
TypeError: must be str, not bytes
我不确定在变量“test”中取消勾选是否可行 或者不是因为我加入了变化多端的“变种”
您的问题是您正试图将pickled对象写入文本文件。这就像试图用MS-word编写数据库一样。
pickled文件的正确文件扩展名为“.pkl”。文件还必须以二进制模式写入和读取。
我的建议是将文件扩展名改为“.pkl”,然后使用两个
with
循环来整理代码。对加载和写入的更正非常简单,只需将'w'
更改为'wb'
,结果如下:根据
help(pickle.dump)
看起来你必须以二进制模式打开你的文件。别忘了对
load
ing也这么做。结果:
相关问题 更多 >
编程相关推荐