Как сохранить большой "подобный базе данных" класс в python - PullRequest
3 голосов
/ 07 июня 2010

Я делаю проект с большой базой данных. Это не файл базы данных, а класс в следующем формате: DataBase.Nodes.Data=[[] for i in range(1,1000)] например эта база данных все вместе что-то вроде нескольких тысяч строк. Первый вопрос - это то, как я работаю эффективно, или лучше использовать SQL или любую другую «правильную» БД, которую я никогда не использовал на самом деле. И главный вопрос - я хотел бы сохранить мою DataBase class со всеми записями, а затем заново открыть ее с помощью Python в другой сессии. Это возможно, какой инструмент я должен использовать? cPickle - похоже, только для строк, любой другой?

В Matlab есть очень полезная функция, которая называется save workspace - она ​​сохраняет все ваши переменные в файл, который вы можете открыть во время другого сеанса - это может быть полезно в python!

Ответы [ 3 ]

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

Pickle (cPickle) может обрабатывать любой (выбираемый) объект Python.Так что, пока вы не пытаетесь засечь поток, файловый дескриптор или что-то в этом роде, все в порядке.

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

Pickle должен иметь возможность сериализации данных для вас, чтобы вы могли сохранить их в файл.

В качестве альтернативы, если вам не нужны функции полнофункциональной СУБД, вы можете использовать облегченное решение, такое как SQLLite или хранилище документов, например MongoDB

1 голос
/ 07 июня 2010

Функция Pickle.dump очень похожа на функцию сохранения в Matlab. Вы просто даете ему объект, который хотите сериализовать, и объект, похожий на файл, чтобы записать его. См. документацию для получения информации и примеров того, как ее использовать.

Модуль cPickle похож на Pickle, но он реализован на C, поэтому он может быть намного быстрее. Вы, вероятно, должны использовать cPickle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...