系统:win10
IDLE:spyder3.
脚本:(关于储存和取储存)
#!/usr/bin/python
# Filename: pickling.py
import cPickle as p
#import pickle as p
shoplistfile = 'shoplist.data'
# the name of the file where we will store the object
shoplist = ['apple', 'mango', 'carrot']
# Write to the file
f = file(shoplistfile, 'w')
p.dump(shoplist, f) # dump the object to a file
f.close()
del shoplist # remove the shoplist
# Read back from the storage
f = file(shoplistfile)
storedlist = p.load(f)
print storedlist
运行出现错误 TypeError: write() argument must be str, not bytes
(然后我百度查到说, f = file(shoplistfile, 'w')需要用'wb',以二级制的方式)
再次运行出现错误 UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence
(提示storedlist = p.load(f),在这边的序列有问题)
有些摸不到头绪,不知道是哪里的原因,请问可以如何解决?
另外还有一个关于软件spyder的问题,运行这个脚本一次之后,spyder里面的脚本代码对于属性颜色消失了,全是白色,而且也无法是用运行功能,截图示意。
运行后