Какой самый простой способ прочитать файл FoxPro DBF из Python?

У меня есть куча файлов FoxPro (VFP9) DBF в моей системе Ubuntu, есть ли библиотека, чтобы открыть их в Python? Мне нужно только прочитать их, и желательно иметь доступ к полям заметок тоже.

Обновление: Спасибо @cnu, я использовал Юсди Сантосо dbf.py и это работает хорошо. Одно замечание: расширение имени файла заметки должно быть в нижнем регистре, т.е. .fpt не .FPT именно так имя файла появилось в Windows.

6 ответов

Решение

Вы можете попробовать этот рецепт на Active State.

Существует также модуль DBFReader, который вы можете попробовать.

Для поддержки памятных полей.

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

Я смог прочитать файл DBF (со связанными файлами BAK, CDX, FBT, TBK **), используя пакет dbf из PyPI http://pypi.python.org/pypi/dbf. Я новичок в python и ничего не знаю о файлах DBF, но он легко работал для чтения файла DBF из бизнеса моей подруги (созданного с помощью POS-приложения музыкального магазина под названием AIMsi).

После установки пакета dbf (я использовал aptitude и установил версию dbf 0.88, я думаю), работал следующий код на python:

from dbf import *
test = Table("testfile.dbf")
for record in test:
    print record
    x = raw_input("")  # to pause between showing records

Это все, что я знаю на данный момент, но, надеюсь, это полезное начало для кого-то еще, кто найдет этот вопрос!

21 апреля 2012 г. SJK Редактировать: Согласно комментарию Этана Фурмана, я должен отметить, что на самом деле я не знаю, какие из файлов данных были необходимы, кроме файла DBF. Когда я запускал скрипт в первый раз, когда был доступен только DBF, он жаловался на отсутствующий файл поддержки. Итак, я просто скопировал файлы BAK, CDX, FPT (а не FBT, как я уже говорил до редактирования), файлы TBK, и затем это сработало.

Если вы все еще проверяете это, у меня есть конвертер GPL FoxPro-to-PostgreSQL по адресу https://github.com/kstrauser/pgdbf. Мы используем его для регулярного копирования наших таблиц в PostgreSQL для быстрого создания отчетов.

Проверьте http://groups.google.com/group/python-dbase

В настоящее время он поддерживает файлы dBase III и Visual Foxpro 6.0 db... не уверен, изменилось ли расположение файлов в VFP 9 или нет...

Сейчас 2016 год, и мне пришлось возиться с пакетом dbf, чтобы он заработал. Вот версия Python3, чтобы просто экспортировать файл DBF в CSV

import dbf

d=dbf.Table('mydbf.dbf')
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)

Сначала у меня была ошибка с юникодом, но я обошел ее, отключив заметки.

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
Другие вопросы по тегам