TypeError:“str”不支持

2024-05-19 05:21:57 发布

您现在位置: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


Tags: 代码close错误loadopenpickledatcrystal
3条回答

pickle模块加载pickled对象,它是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()

真正的答案应该是在windows下以二进制模式打开文件。 打开('data.txt','rb')

这个问题是在我最初发布并被接受后编辑的。更新问题的答案是以二进制模式打开文件:

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

相关问题 更多 >

    热门问题