Aller au contenu

Traitement automatisé

Le principe sera le suivant :

  • les données sont dans un fichier, qu'il va falloir ouvrir en lecture ;
  • les données vont être lues dans le fichier :
  • soit une ligne à la fois ;
  • soit toutes les lignes ensemble (attention à la taille du fichier...) ;
  • ces données sont placées dans une structure de données (voir page suivante) ;
  • nous pouvons alors faire des recherches dans les données ou modifier celles-ci (tris, fusion, etc.) ;
  • les résultats devront être affichés ou sauvegardés dans un fichier.

Structure de données utilisables⚓︎

Stockage comme liste de listes⚓︎

Ville Pays Population Langue
Ottawa Canada 934 243 Anglais
Vilnius Lituanie 574 147 Lituanien
Lille France 233 098 Français

peut être stockée dans une liste de listes :

🐍 Script Python
table = [['Ville', 'Pays', 'Population', 'Langue'],
['Ottawa', 'Canada', 934243, 'Anglais'],
['Vilnius', 'Lituanie', 574147, 'Lituanien'],
['Lille', 'France', 233098, 'Français']]

Inconvénients

Les noms des champs sont rangés comme les valeurs de ces champs et il faut se souvenir par exemple que la troisième colonne correspond à la population. Ainsi la population de Lille s'écrirait table[3][2] ce qui n'est pas très intuitif...


Stockage comme liste de dictionnaires⚓︎

La même table

Ville Pays Population Langue
Ottawa Canada 934 243 Anglais
Vilnius Lituanie 574 147 Lituanien
Lille France 233 098 Français

peut être stockée dans une liste de dictionnaires :

🐍 Script Python
table = [{'Ville': 'Ottawa', 'Pays': 'Canada', 'Population': 934243, 'Langue': 'Anglais'},
{'Ville': 'Vilnius', 'Pays': 'Lituanie', 'Population': 574147, 'Langue': 'Lituanien'},
{'Ville': 'Lille', 'Pays': 'France', 'Population': 233098, 'Langue': 'Français'}]

Inconvénient/Avantage

Cela prend un peu plus de place mais il est plus simple d'accèder à une donnée, par exemple, en supposant que la liste de dictionnaires s'appelle table, voilà comment afficher la population de Lille :

🐍 Script Python
for ligne in table:
    if ligne['Ville'] == 'Lille':
        print(ligne['Population'])

Fonctions de Python à notre disposition⚓︎

Nous pouvons traiter les fichiers de données :

  • soit avec des commandes natives de Python (readline, readlines, split, etc.) ;
  • soit avec la bibliothèque csv, spécialisée dans ces tâches ;
  • soit avec la bibliothèque pandas, plus puissante que csv.

Nous ne travaillerons ici qu'avec les deux premières méthodes, si vous voulez en savoir plus sur pandas, vous pourrez consulter plus tard ce document officiel ou ce td de D. Roche.

TP1 sur le traitement des données

Retour en haut de la page