Самое главное, если вам конкретно не нужна производительность или высокая надежность, делайте все, что сделает ваш код максимально простым/легким для написания.
Если ваши данные чрезвычайно структурированы (и вы знаете SQL или хотите его изучить), то использование такой базы данных, как sqlite3, может оказаться уместным. (Вы должны игнорировать комментарий о размере базы данных и оперативной памяти: бывают случаи, когда базы данных подходят даже для очень небольших наборов данных из-за того, как данные структурированы.)
Если данные относительно просты и вам не нужна надежность, которую имеет база данных (обычно), то сохранение их в одном из встроенных типов данных во время работы программы, вероятно, нормально.
Если вы хотите, чтобы данные, хранящиеся на диске, были удобочитаемыми (и редактируемыми с небольшими усилиями), то формат, подобный JSON (имеется встроенный модуль json), удобен, поскольку основные объекты Python сериализуются без каких-либо усилий. Если данные не такие простые, то YAML по сути является расширенной версией JSON (PyYAML очень хорош.). Точно так же вы можете использовать CSV-файлы (модули csv), хотя это далеко не так хорошо, как JSON или YAML, или просто пользовательский текстовый формат (но это довольно много усилий, чтобы аккуратно реализовать обработку ошибок и т. д.) .
Наконец, если ваши данные содержат более сложные объекты (например, рекурсивные словари или сложные пользовательские типы данных), то использование одного из встроенных методов двоичной сериализации (pickle, shelve и т. д.) может быть целесообразным, однако YAML может обрабатывать многие из этих вещей (включая рекурсивные структуры данных).
Некоторые общие моменты:
- Обычные текстовые форматы хороши, так как они позволяют легко настраивать значения и легко отлаживать/тестировать.
- Двоичные форматы хороши, так как они означают, что значения не могут быть изменены без дополнительных усилий (хотя это не означает, что их нельзя изменить), а размер файла меньше (вероятно, не имеет значения).
person
huon
schedule
09.06.2012