Как я могу удалить поле из файла DBF, если кодировка не поддерживается? - PullRequest
1 голос
/ 18 февраля 2020

У меня есть несколько файлов DBF с полями с латинскими символами в имени, например, «Año». Я пытаюсь прочитать таблицы и экспортировать их в CSV. Используя библиотеки python, я использовал библиотеку dbf, и у нее возникают проблемы при экспорте в CSV, изменении или удалении имени поля.

Я перепробовал все возможные кодировки spani sh (кодовая страница) для чтения файла.

Чтение файла DBF (эта часть работает)

import dbf
table = dbf.Table('C:\\Users\\...\\Desktop\\test.dbf', codepage="cp1252")
print (table)

Но когда я пытаюсь сделать следующее:

table.delete_fields('año')

Я получаю эта ошибка, хотя поле появилось в списке при печати файла.

field año not in table -- delete aborted

То же самое происходит, когда я пытаюсь экспортировать файл DBF в CSV:

dbf.export(table, "junk.csv")

Вот документация для библиотеки, которую я использую: https://pythonhosted.org/dbf/dbf-module.html

Я пытался использовать библиотеку dbfread, но всякий раз, когда она попадает в пустую строку, она останавливается, поэтому бесполезно для чтения целых таблиц DBF.

Есть мысли о том, как мне обойти эту проблему?

Спасибо!

...