首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python pickle语法

Python pickle语法
EN

Stack Overflow用户
提问于 2011-12-01 07:12:21
回答 1查看 2.4K关注 0票数 5

我使用的是最新的python版本,在搜索之后,我似乎找不到任何适合我的关于酸菜的东西。

我只是简单地浏览教程,试图了解有关酸洗的知识,但显然在教程上工作的源代码对我来说都不起作用,我怀疑这与教程过时有关。

我尝试过的东西和教程展示的是一样的:

代码语言:javascript
复制
import pickle 
lists = [1,2,3,4,5]
pickle.dump(lists, open('log.txt', 'a+')) 

这给出了以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
pickle.dump(lists, open('log.txt', 'a+'))
TypeError: must be str, not bytes

代码语言:javascript
复制
>>> import pickle
>>> unpicklefile = open('log.txt', 'r')
>>> unpickledlist = [1,2,3,4,5]
>>> unpickledlist = pickle.load(unpicklefile)

出现以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
unpickledlist = pickle.load(unpicklefile)
TypeError: 'str' does not support the buffer interface

感谢您的回复和帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-01 07:17:33

'a+'模式可能会给您带来问题。而且,如果您使用的是Windows,那么以二进制模式打开文件将非常有用。此外,您应该在重新打开文件之前关闭该文件,以便将其读回。并确保您正在写入和读取相同的文件('log.txt‘与'filename'):

代码语言:javascript
复制
import pickle 
lists = [1,2,3,4,5]

f = open('tmp_pickle.pic', 'wb')
pickle.dump(lists, f)
f.close()

f = open('tmp_pickle.pic', 'rb')
unpickledlist = pickle.load(f)
print unpickledlist
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8334364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档