dsh*_*hri 6 python pickle python-3.x
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()
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我得到以下错误
line 6, in <module>
pickle.dump(variety, pickleFile)
TypeError: must be str, not bytes
Run Code Online (Sandbox Code Playgroud)
我不确定变量'test'中的unpickling是否可能因为我用变量'variety'腌制了
Kev*_*vin 12
根据help(pickle.dump)
,
的文件参数必须具有接受单个字节的参数写()方法。因此,它可以是为二进制写入而打开的文件对象、io.BytesIO 实例或任何其他符合此接口的自定义对象。
看起来您必须以二进制模式打开文件。不要忘记对load
ing 也做同样的事情。
import pickle
variety = ["sweet", "box", "cat"]
shape = ["back","spear", "log"]
pickleFile = open("pickle.txt", 'wb')
pickle.dump(variety, pickleFile)
pickle.dump(shape, pickleFile)
pickleFile.close()
pickleFile = open("pickle.txt", 'rb')
test = pickle.load(pickleFile)
shape = pickle.load(pickleFile)
print ("variety : ", test, " shape : ", shape)
pickleFile.close()
Run Code Online (Sandbox Code Playgroud)
结果:
variety : ['sweet', 'box', 'cat'] shape : ['back', 'spear', 'log']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7516 次 |
最近记录: |