0

我有一个列表,其中包括 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 中所做的那样,我们可以保存一个变量并在将来导入它

4

2 回答 2

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 用于您的个人脚本,因为它会愉快地加载它收到的任何内容,包括恶意代码:我不建议将它用于生产或发布项目。

于 2013-10-15T17:18:47.170 回答
0

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

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

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

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

于 2013-10-15T17:54:17.547 回答