Comment lire/écrire un fichier dbf ?

Published: 28 mai 2014

DMCA.com Protection Status

Pour lire/écrire un fichier au format dbf (Note: pour la définition de dbf voir l'article dBase), il existe le package python très complet "dbf". Pour utiliser ce package télécharger dbf puis installer celui-ci avec la commande python setup.py install. Une fois cette étape terminée, vous pouvez commencer à travailler avec des fichiers aux formats bdf. Vous pouvez, par exemple, télécharger TM_WORLD_BORDERS_SIMPL-0.3.zip sur le site thematicmapping
et essayer d'extraire les informations contenues dans ce fichier comme:

    >>> import dbf
>>> table = dbf.Table('TM_WORLD_BORDERS_SIMPL-0.3.dbf')
>>> print table

    Table:         TM_WORLD_BORDERS_SIMPL-0.3.dbf
    Type:          dBase III Plus
    Codepage:      cp1252 (Windows ANSI)
    Status:        closed
    Last updated:  2014-05-28
    Record count:  246
    Field count:   11
    Record length: 99 
    --Fields--
      0) fips C(2)
      1) iso2 C(2)
      2) iso3 C(3)
      3) un N(3,0)
      4) name C(50)
      5) area N(7,0)
      6) pop2005 N(10,0)
      7) region N(3,0)
      8) subregion N(3,0)
      9) lon N(8,3)
     10) lat N(7,3)

>>>

Il est aussi possible de faire une boucle sur l'ensemble des valeurs:

>>> table.open()
>>> for record in table:
>>>     print record.name, record.fips, record.lon, record.lat, record.region, record.area

qui donne le résultat suivant:

Antigua and Barbuda                                AC -61.783 17.078 19 44
Algeria                                            AG 2.632 28.163 2 238174
Azerbaijan                                         AJ 47.395 40.43 142 8260
Albania                                            AL 20.068 41.143 150 2740
Armenia                                            AM 44.563 40.534 142 2820
Angola                                             AO 17.544 -12.296 2 124670
American Samoa                                     AQ -170.73 -14.318 9 20
Argentina                                          AR -65.167 -35.377 19 273669
Australia                                          AS 136.189 -24.973 9 768230
Bahrain                                            BA 50.562 26.019 142 71
Barbados                                           BB -59.559 13.153 19 43
Bermuda                                            BD -64.709 32.336 19 5
Bahamas                                            BF -78.014 24.628 19 1001
Bangladesh                                         BG 89.941 24.218 142 13017
Belize                                             BH -88.602 17.219 19 2281
Bosnia and Herzegovina                             BK 17.786 44.169 150 5120
Bolivia                                            BL -64.671 -16.715 19 108438
    .
    .
    .

Erreurs associées

Si vous obtenez le message d'erreur suivant en voulant utiliser le package dbf (voir aussi (How can I represent an 'Enum' in Python? )):

from enum import Enum, IntEnum
ImportError: No module named enum

Veuillez installer enum34 1.0
( pip install enum34 ou python setup.py install)

Recherches associées