Форум сайта python.su
0
В своей небольшой беспонтовой программке решил использовать для хранения данных pickle. Записей будет по 120-150 (в виде списка списков). Возможно, решение глупое. Базу ставить не хочу.
На сколько бестолково такое решение? Насколько быстра будет выборка данных? Какие есть упрощенные варианты решений, CSV чтоли?
Готов к любым ответам.
Офлайн
63
Полочки: shelve. Позволяют хранить данные как словарь: ключ-данное. pickle плох тем, что чтобы добавить данные в твой список придется весь его отгрузить, изменить и опять загрузить с помощью pickle. В полочках этого делать не обязательно. Так что - дерзай…
Офлайн
0
4kpt
Полочки: shelve. Позволяют хранить данные как словарь: ключ-данное. pickle плох тем, что чтобы добавить данные в твой список придется весь его отгрузить, изменить и опять загрузить с помощью pickle. В полочках этого делать не обязательно. Так что - дерзай…
Офлайн
63
В CSV придется структурировать данные перед передачей их в файл. Иногда структурирование может быть невозможно. Кроме того, изначально желательно задавать имена полей. И отходить от этих имен нежелательно (я так думаю), так как теряется логика хранения. Если ты задал 4 базовых поля, то хранить пять данных в следующей строке как-то неправильно. В полке ты задаешь идентификатор и запихиваешь в него что захочешь…
Отредактировано 4kpt (Ноя. 10, 2012 01:21:29)
Офлайн
253
думаю справедливо следующее дерево принятия решений
if "данные надо править ручками не из питона": if "данных мало, можно грузить целиком в память": "json,pickle в текстовом виде, xml,csv в зависимости" "от инструментария под который подстраиваетесь" else: "hdf5,mysql,...." else: if "данных мало": "сPickle в двоичном виде -и не паритесь это самый быстрый и удобный способ" else: "shelve,zodb ну и решения hdf5,mysql,...."
Отредактировано doza_and (Ноя. 10, 2012 08:22:55)
Офлайн
63
Прикольный такой алгоритмик….
Офлайн