Python pickle 语法

标签 python io pickle

我使用的是最新的 python 版本,在搜索之后,我似乎找不到任何适合我的 pickle 。

我只是通过教程尝试了解 pickling,但显然适用于教程的源代码都不适合我,我怀疑这与教程已过时有关。

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

import pickle 
lists = [1,2,3,4,5]
pickle.dump(lists, open('log.txt', 'a+')) 

这给了我以下错误:

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

这个

>>> import pickle
>>> unpicklefile = open('log.txt', 'r')
>>> unpickledlist = [1,2,3,4,5]
>>> unpickledlist = pickle.load(unpicklefile)

给我以下错误:

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

感谢您的任何回复和帮助

最佳答案

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

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

关于Python pickle 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334364/

相关文章:

python - 如何在pyclustering中保存SOM网络模型?

python - 如何更新pickle文件?

python - Choropleth map 不为国家着色?

python - python 将 TXT 转换为 CSV

java - 使用逗号分隔坐标的扫描仪 NextInt()

c# - Dokan/Dokan.NET(不)支持同步 I/O 吗?

c++ - cin 输入可以有多大?

python celry + amazon EC2 由于散列而失败

python - 在 pandas 中使用滚动窗口计算非零数的有效方法?

python - 在 Python 中创建和保存 CMS/PKCS#7 对象