TypeError:'str'不支持缓冲区接口

时间:2011-08-11 19:30:02

标签: python

我从原始代码发布,

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

3 个答案:

答案 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 WikiPython 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()