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

StackOverflow https://stackoverflow.com/questions/37535

Вопрос

У меня есть куча файлов 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top