Откройте файл DBF из BytesIo - PullRequest
       8

Откройте файл DBF из BytesIo

0 голосов
/ 14 сентября 2018

Я пытаюсь удалить поля из DBF, которые я получаю из Интернета.

Он заархивирован и во избежание записи каких-либо данных на диск перед применением изменений, которые я должен сделать на нем, яраспакуйте его в объект BytesIo.

Затем, во-первых: обрабатывает ли библиотека dbf файлы памяти, например, BytesIo?Второе: эффективен ли мой метод удаления нежелательных полей?

Вот что я закончил:

def removeFields(name, raw):
    import dbf

    data = io.BytesIO(raw)
    print "Editing "+name
    table = dbf.Table(data, on_disk=False)
    table.open()
    table.delete_fields(rmv_dict[name])
    table.close()
    return (data.getvalue())

1 Ответ

0 голосов
/ 20 сентября 2018

К сожалению, библиотека dbf не обрабатывает файлы памяти (подтверждено ее автором).Некоторые, такие как dbfread, обрабатывают их, но не предоставляют какого-либо метода для удаления полей просто в их документах.

К счастью, я нашел рецепт чтения / записи файлов dbf с переменными, которые легко обрабатывать: http://code.activestate.com/recipes/362715-dbf-reader-and-writer/

...