如何在python中保存列表?

Posted

技术标签:

【中文标题】如何在python中保存列表?【英文标题】:How to save a list in python? 【发布时间】:2015-06-30 13:05:02 【问题描述】:

我有一个由许多矩阵组成的列表。 我会保存这个列表以便在另一个脚本中阅读它。 这是我的代码 t 保存我的列表 W:

with open("My_rotation_matrix.bin", "wb") as output:
    pickle.dump(W, output)

然后在另一个脚本中读取我的列表:

with open("My_rotation_matrix.bin", "rb") as data:
W = pickle.load(data)

问题是保存的 My_rotation_matrix.bin 很大(1.4 GB),当我阅读我的列表时,我必须等待近 5 分钟。 有没有更快的方法在 python 中保存/读取列表?例如使用 JSON? 谢谢!

【问题讨论】:

您可能需要结合 Python 包 pytablesh5py 来查看 HDF5 文件格式。 “你能写出正确的代码吗?” - 你深深误解了 Stack Overflow 的用途...... 我从几周开始就在使用 python。我需要一种有效的方式来保存和读取数据。我不认为我的问题是一个坏问题。也许我错了。 列表中包含什么?是所有项目、整数还是类型、嵌套列表等的混合? 看看protocol buffers 【参考方案1】:

我的建议是你是否可以使用 numpy.由于您的数据已经在列表中,您可以这样做:

    import numpy as np
    data = np.array(mylist)
    np.savez("Myfile", data)

现在保存此文件可能需要一两分钟(取决于您的计算机上有多少 RAM),但加载文件相当快(对于 700 MB 的文件只需几秒钟)。当你准备好加载它时,你可以说

    a = np.load("Myfile.npz") #make sure you use the .npz!
    b = a['arr_0']

【讨论】:

两周后没有问题,突然现在当我尝试加载我的文件时,由于发生内存错误,程序停止了。有办法解决这个问题吗? 这是我的问题:您可以阅读所有详细信息。谢谢。 ***.com/questions/31653558/…

以上是关于如何在python中保存列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的打印语句保存在列表中? Python [关闭]

如何在 Python 中保存二维数组(列表)?

如何在 python 3 中将类对象列表“保存”到我的程序中?

如何在 Python 中规范化包含列表(应保存为列表)的 json 文件熊猫?

请教商品列表保存在json文件中,如何在python中读取文件中并保存到字典中

如何保存对 Python 列表所做的更改,以便在重新运行脚本后更新? [复制]