Python pickle/unpickle 到/从文件中提取列表

标签 python file-io pickle

我有一个如下所示的列表:

a = [['a string', [0, 0, 0], [22, 'bee sting']], ['see string', 
    [0, 2, 0], [22, 'd string']]]

在保存和检索它时遇到问题。

我可以用pickle保存它:

with open('afile','w') as f:
    pickle.dump(a,f)

但是当我尝试加载它时出现以下错误:

pickle.load('afile')

Traceback (most recent call last):
  File "<pyshell#116>", line 1, in <module>
    pickle.load('afile')
  File "C:\Python27\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "C:\Python27\lib\pickle.py", line 841, in __init__
    self.readline = file.readline
AttributeError: 'str' object has no attribute 'readline'

我曾认为我可以转换为 numpy 数组并使用 savesavezsavetxt。但是我收到以下错误:

>>> np.array([a])

Traceback (most recent call last):
  File "<pyshell#122>", line 1, in <module>
    np.array([a])
ValueError: cannot set an array element with a sequence

最佳答案

决定将其作为答案。 pickle.load 方法期望获得一个类似对象的文件,但您提供的是一个字符串,因此是一个异常。所以而不是:

pickle.load('afile')

你应该这样做:

pickle.load(open('afile', 'rb'))

关于Python pickle/unpickle 到/从文件中提取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18229082/

相关文章:

python - 将读取到的文件放入目录中

google-cloud-platform - 使用 TaggedOutputs 的数据流中断, "can' t pickle WeakDictionary”

python - 如何将多个 .txt 文件 pickle 成一个 pickle

python - 如果存在子字符串,则从元组中删除项目

python - 在Paramiko中的Windows SSH服务器上执行命令(pg_dump)之前设置环境变量(PGPASSWORD)

java - 使用 getRuntime().exec() 复制文件

c++ - `fseek`、 `lseek`、 `seekg`、 `seekp` 之间有什么区别?

python - 如何使用ffmpeg和python为给定值(100%以外)的音频创建淡入/淡出效果?

python - 使用 flask-wtf 和 flask-bootstrap 时如何将 html 属性传递给 wtf.form_field

python - 内置函数的 dill/pickle 问题