Какой самый простой способ прочитать файл FoxPro DBF из Python? - PullRequest
23 голосов
/ 01 сентября 2008

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

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

Ответы [ 6 ]

16 голосов
/ 01 сентября 2008

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

9 голосов
/ 21 апреля 2012

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

После установки пакета dbf (я использовал aptitude и установил версию 0.88 dbf, я думаю), работал следующий код на 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, и затем это сработало.

9 голосов
/ 17 сентября 2008

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

7 голосов
/ 01 сентября 2008

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

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

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

5 голосов
/ 23 февраля 2009

Выезд http://groups.google.com/group/python-dbase

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

4 голосов
/ 03 августа 2016

Сейчас 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)
...