Форум сайта python.su
3
Приветствую всех!
Задача:
Найти способ запихнуть кучу мелких файлов в один, плюс некоторое количество данных, которые относительно активно будут меняться.
Первое, что пришло на ум - zipfile или tarfile, но эксперименты закончились неудачно по причине того что без перепаковки всего архива, нельзя изменить один файл, нельзя удалить файл.
Задумываюсь о базе данных. sqlite3 использовать не получается, так как возникают проблемы при его сборке под android (скоро расскажу про это и покажу). То есть остается использовать базы данных, написанные на чистом питоне.
Из требований: более менее нормальная скорость. ~1000 файлов по 70-100 кб, ~1000 по 7-10 кб, и 50-100 кб данных.
Офлайн
3
ZODB?
Хотя там есть C-шные моменты.
Pure-python: dobbin: http://pypi.python.org/pypi/dobbin
Отредактировано regall (Июнь 5, 2012 14:53:59)
Офлайн
3
regallСпасибо, буду пробовать. Сейчас посмотрел исходники, используется fcntl для лока файла. Его вроде нет в сборке питона под android, попробую вручную выпилить
Pure-python: dobbin: http://pypi.python.org/pypi/dobbin
Офлайн
13
Как это нет fcntl. Это же вроде бы стандартный POSIX вызов. Должен под любыми унихами работать.
Офлайн
3
EdВечером потестирую, посмотрю, будет ли в сборке питона доступен этот модуль. Мне бы еще чтоб под виндой работало, так как приложение должно запускаться еще и так )
Должен под любыми унихами работать.
Отредактировано igor.kaist (Июнь 5, 2012 17:14:58)
Офлайн
173
igor.kaistВ sheleve оверхед, скорее всего, из-за того, что все данные pickle'тся. Не пробовали anydbm (shelve его использует)?
50 мб данных - 150 мб файл получается.
Отредактировано reclosedev (Июнь 5, 2012 17:29:36)
Офлайн
20
Dobbin не ограничивает себя в потреблении оперативки, если этого не будет делать и система (её нужно об этом попросить), то на больших объёмах начнутся проблемы. Buzhug – нцать файлов создаёт. Про Cog ничего не помню. Про Gadfly тоже забыл что за зверь. Если не получилось собрать SQLite, может получится с bsddb3. А bsddb есть в батарейках (вообще-то полагается)?
..bw
Офлайн
32
Чем плох вариант хранения файликов как есть в отдельной папке? По крайней мере тех что будут меняться.
Офлайн
13
Если вам только для этого напишите простенькую свою. Быстрее будет, чем искать.
Офлайн
3
o7412369815963Плохо тем, что это все нужно кидать на различные устройства. Легче скопировать один большой файл, чем файл с тысячами мелких.
Чем плох вариант хранения файликов как есть в отдельной папке? По крайней мере тех что будут меняться.
Ed
Если вам только для этого напишите простенькую свою. Быстрее будет, чем искать.
Отредактировано igor.kaist (Июнь 6, 2012 23:22:15)
Офлайн