Как проще всего прочитать файл FoxPro DBF из Python?

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

обновление: спасибо @cnu, я использовал Yusdi Santoso's dbf.py и это хорошо работает. One gotcha: расширение имени файла memo должно быть строчным, т. е. .fpt, а не .FPT именно так имя файла пришло из Windows.

6 ответов


вы можете попробовать этот рецепт в активном состоянии.

также модуль DBFReader что вы можете попробовать.

поддержки memo fields.


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


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


я смог прочитать файл 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 Edit: в комментарии этана Фурмана я должен отметить, что я на самом деле не знаю , который файлы данных были необходимы, кроме файла DBF. В первый раз, когда я запустил скрипт, доступный только DBF, он пожаловался на отсутствующий файл поддержки. Итак, я просто скопировал BAK, CDX, FPT (не FBT, как я сказал перед редактированием), TBK-файлы, а затем он работал.


проверить 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)

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

import dbf

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