Как проще всего прочитать файл 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)