Проблема чтения Python dbfread dbase IV - для распаковки требуется буфер 32 байта - PullRequest
0 голосов
/ 28 мая 2019

У меня есть большое количество файлов DBASE IV .dbf, которые я хочу читать в python3. Они производятся ежедневно, и я ищу средства для их обработки в AWS Lambda, отсюда и скрипт на python. dbfread - одно из решений, которое я попробовал. К сожалению, я не могу прочитать данные из файлов, так как получаю следующую ошибку:

Файл "C: \ Users \ sa \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ dbfread \ dbf.py", строка 122, в init self._read_field_headers (входной_файл)

Файл "C: \ Users \ sa \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ dbfread \ dbf.py", строка 224, в _read_field_headers field = DBFField.unpack (sep + infile.read (DBFField.size - 1))

Файл "C: \ Users \ sa \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ dbfread \ struct_parser.py", строка 36, в распакованном виде items = zip (self.names, self.struct.unpack (data))

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

Я безуспешно пытался использовать модуль dbfread, dbfpy, tablib и ряд других модулей.

def printdbfread(filename):
    table = DBF(filename, encoding='iso-8859-1')
    #table = DBF(filename, parserclass=TestFieldParser)
    for record in table:
        print(record)

Буду очень признателен за любую помощь по вышеперечисленному или любые ссылки на другие модули, которые могут читать файлы, нарушающие работу.

...