我从原始代码发布,
crystal = open('vmises.dat','r')
crystalincrement = pickle.load(crystal)
crystaldir = pickle.load(crystal)
crystalface = pickle.load(crystal)
crystal.close()
错误是,
crystalincrement = pickle.load(crystal)
TypeError:'str'不支持缓冲区接口
我使用的是python V 3.2
答案 0 :(得分:15)
真正的答案应该是在Windows中以二进制模式打开文件。 打开('data.txt','rb')
答案 1 :(得分:6)
这个问题是在我最初发布之后编辑的,并且被接受了。更新问题的答案是以二进制模式打开文件:
crystal = open('vmises.dat', 'rb')
回答原创的编辑前问题:
好吧,data
是一个字符串。您需要处理的对象是a
。
a = open('data.txt','r')
b = pickle.load(a)
c = pickle.load(a)
d = pickle.load(a)
a.close()
对于pickle
信息,请参阅Python Wiki或Python for Kids。
答案 2 :(得分:0)
pickle
模块加载pickle对象,这是Python对象的序列化版本。此代码尝试将序列化数据集加载到您的程序中。您可以在此处详细了解此模块:http://docs.python.org/library/pickle.html
我不知道你在哪里定义了变量data
,但是你可能想要从变量a
加载,这是指向pickle接收或重命名的文件的指针该变量为data
。
data = open('data.txt','r')
b = pickle.load(data)
c = pickle.load(data)
d = pickle.load(data)
data.close()