Какой самый простой способ прочитать файл FoxPro DBF из Python?
-
09-06-2019 - |
Вопрос
У меня есть куча файлов DBF FoxPro (VFP9) в моей системе Ubuntu, есть ли библиотека, чтобы открыть их в Python? Мне нужно только прочитать их, и желательно иметь доступ к полям заметок тоже.
Обновление . Благодаря @cnu, я использовал ссылку dbf.py
, и это прекрасно работает. Одно замечание: расширение имени файла заметки должно быть в нижнем регистре, т. Е. .fpt
, а не .FPT
, как и произошло из-за имени файла из Windows.
Решение
Вы можете попробовать этот рецепт активного состояния . Р>
Существует также модуль DBFReader который вы можете попробовать.
Для поддержки памятных полей . р>
Другие советы
Я предпочитаю 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 Редактировать: согласно комментарию Этана Фурмана, я должен отметить, что я на самом деле не знаю , какие из файлов данных были необходимы, кроме файла 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)