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