ошибка: для распаковки требуется буфер 8 байт при работе с файлом cdb

Я использую библиотеку python и pure-cdb. У меня есть большой набор данных с расширением cdb, содержимое которого представляет собой двоичные изображения, и я хочу его прочитать. Поскольку этот набор данных большой, я использую метод разбиения на фрагменты, но когда я устанавливаю значение фрагмента на 1024, я получаю ошибка CDB слишком мала, а когда я увеличиваю его значение до 2048, я получаю < em>struct.error: для распаковки требуется буфер размером 8 байт. в чем проблема? вот мой код:

import cdblib
with open('a.cdb', 'rb') as file:
    while chunk := file.read(2048):
        reader = cdblib.Reader(chunk)
        for key, value in reader.iteritems():
          print(key, value)
          print('+{},{}:{}->{}'.format(len(key), len(value), key, value))

спасибо за помощь


person M.rnnnn    schedule 06.01.2021    source источник


Ответы (1)


Не прямой ответ на ваш вопрос, а альтернативное решение: https://github.com/gstrauss/mcdb/ не имеет таких ограничений и имеет модуль python. https://github.com/gstrauss/mcdb/blob/master/contrib/python-mcdb/README

mcdb снимает ограничение в 4 ГБ, присущее cdb.

person gstrauss    schedule 15.05.2021