24 votes

Quel est le moyen le plus simple de lire un fichier FoxPro DBF depuis Python ?

J'ai un tas de fichiers DBF FoxPro (VFP9) sur mon système Ubuntu, existe-t-il une bibliothèque pour les ouvrir en Python ? J'ai seulement besoin de les lire, et j'aimerais de préférence avoir accès aux champs mémo aussi.

Mise à jour : Merci @cnu, j'ai utilisé celui de Yusdi Santoso. dbf.py et ça marche bien. Un seul problème : l'extension du nom du fichier memo doit être en minuscules, c'est-à-dire .fpt pas .FPT c'est ainsi que le nom du fichier est venu de Windows.

17voto

Anders Sandvig Points 7964

Je préfère dbfpy . Il prend en charge la lecture et l'écriture de .DBF et peut gérer la plupart des variations de ce format. C'est la seule implémentation que j'ai trouvée qui pouvait à la fois lire et écrire les anciens fichiers DBF de certains anciens systèmes avec lesquels j'ai travaillé.

12voto

Steve Koch Points 402

J'ai pu lire un fichier DBF (avec les fichiers BAK, CDX, FBT, TBK associés**) en utilisant le paquet dbf de PyPI. http://pypi.python.org/pypi/dbf . Je suis novice en python et je ne connais rien aux fichiers DBF, mais cela a fonctionné facilement pour lire un fichier DBF de l'entreprise de ma petite amie (créé avec une application de point de vente de magasin de musique appelée AIMsi).

Après avoir installé le paquet dbf (j'ai utilisé aptitude et installé dbf version 0.88 je pense), le code python suivant a fonctionné :

from dbf import *
test = Table("testfile.dbf")
for record in test:
    print record
    x = raw_input("")  # to pause between showing records

C'est tout ce que je sais pour l'instant, mais j'espère que c'est un début utile pour quelqu'un d'autre qui trouve cette question !

21 avril 2012 SJK Edit : Par le commentaire d'Ethan Furman, je dois préciser que je ne sais en fait pas dont des fichiers de données étaient nécessaires, en plus du fichier DBF. La première fois que j'ai lancé le script, avec seulement le DBF disponible, il s'est plaint d'un fichier de support manquant. Donc, j'ai juste copié les fichiers BAK, CDX, FPT (pas FBT comme je l'ai dit avant l'édition), TBK et ça a marché.

9voto

Kirk Strauser Points 12087

Si vous êtes toujours en train de vérifier, j'ai un convertisseur FoxPro-PostgreSQL sous licence GPL à l'adresse suivante https://github.com/kstrauser/pgdbf . Nous l'utilisons pour copier systématiquement nos tables dans PostgreSQL afin d'obtenir des rapports rapides.

8voto

cnu Points 6802

Vous pouvez essayer ceci Recette sur l'état actif .

Il existe également un Module DBFReader que vous pouvez essayer.

Pour le soutien de champs mémo .

5voto

Vérifiez http://groups.google.com/group/python-dbase

Il supporte actuellement les fichiers db de dBase III et Visual Foxpro 6.0... je ne sais pas si la disposition des fichiers a changé dans VFP 9 ou non...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X