Класс cPickle с сохранением данных в файл - PullRequest
0 голосов
/ 07 июня 2010

У меня большой класс в Python, это "DataBase-подобный" класс. Я хочу сохранить его в файл - все, включая данные.

Это входные данные (пример, чтобы показать проблему, в базе данных скриптов, как 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 Ответ

4 голосов
/ 07 июня 2010

Вы выбираете «базу данных», которая является определением класса.Вам нужно создать экземпляр объекта класса DataBase, а затем выбрать его.

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

filename='D:/results/file.lft'
file=open(filename,'w')
cPickle.dump(objDataBase, file, protocol=2)
file.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...