如何在python中保存列表

时间:2013-10-15 17:16:37

标签: python-2.7

我有一个列表包含python中的4000个元素,其中每个元素都是具有多个值的后续类的对象。

class Point:
     def __init__(self):
        self.coords = []
        self.IP=[]
        self.BW=20
        self.status='M'
     def __repr__(self):
         return str(self.coords)

我不知道如何保存此列表以供将来使用。 我试图通过打开文件和write()函数来保存它,但这不是我想要的。 我想保存它并将其导入下一个程序,就像我们在MATLAB中做的那样,我们可以保存变量并在将来导入它

2 个答案:

答案 0 :(得分:1)

pickle是个不错的选择:

import pickle

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

和对称:

import pickle

with open("output.bin", "rb") as data:
    yourList = pickle.load(data)

这是一个很好的选择,因为它包含在标准库中,它可以毫不费力地序列化几乎任何Python对象,并且具有良好的实现,尽管输出不是人类可读的。请注意,您应该仅为您的个人脚本使用pickle,因为它会很乐意加载它收到的任何内容,包括恶意代码:我不建议将它用于生产或发布的项目。

答案 1 :(得分:0)

既然你说Matlab,numpy应该是一个选择。

f = open('foo', 'w')
np.save(f, my_list)

# later
data = np.load(open('foo'))

当然,它会返回一个数组,而不是一个列表,但如果你真的想要一个数组,你可以强制它...