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 :
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 :
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 :
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 quecsv
.
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.