cPickle类,数据保存到文件

时间:2010-06-07 17:07:46

标签: python serialization pickle object-persistence

我在Python中是一个很大的类,它是“类数据库”类。我想将它保存到文件中 - 包括数据。

这是输入(示例显示问题,在脚本数据库中就像10000条记录):

import cPickle
# DataBase-like class
class DataBase:
    class Arrays: pass
    class Zones: pass
    class Nodes: 
        class CR: pass    
    class Links: 
        class CR: pass
    class Turns:
        class CR: pass    
    class OrigConnectors: pass
    class DestConnectors: pass    
    class Paths: pass
    pass
# some basic input into database
DataBase.Arrays.Data=[]
for i in range(1000):
    DataBase.Arrays.Data.append([i+4]) 

print DataBase.Arrays.Data[56]

# and now I want to save it to file

import cPickle    

filename='D:/results/file.lft'
file=open(filename,'w')
cPickle.dump(DataBase, file, protocol=2)`

这就是我得到的文件:

€c__main__
DataBase
q.`

没有数据,只有定义。我怎么能克服这一点。也许将我的数据保存为一个类不是一个好主意?

1 个答案:

答案 0 :(得分:4)

你正在腌制“数据库”,这是一个类定义。您需要实例化一个DataBase类的对象,然后选择它。

objDataBase = DataBase()
objDataBase.Arrays.Data = etc....

filename='D:/results/file.lft'
file=open(filename,'w')
cPickle.dump(objDataBase, file, protocol=2)
file.close()