2010-06-07 44 views
0

我在Python中的大类是“类数据库”类。我想将它保存到文件中 - 全部包括数据。cPickle类与数据保存到文件

这是输入(例如,显示问题,脚本数据库就像是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.` 

有没有数据,仅仅定义。我如何克服这一点。也许作为一个班级保存我的数据不是一个好主意?

+0

您应该了解Python的类如何工作:http://docs.python.org/tutorial/classes.html – Mark 2010-06-07 17:21:46

回答

4

您正在酸洗“DataBase”,它是一个类定义。你需要实例化一个DataBase类的对象,然后去除它。

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

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