La lecture de données au format CSV avec EduPython
Pour démarrer
Créez un répertoire dans lequel vous mettrez les deux fichiers reg2018.txt et comsimp2018.txt ( ils sont compressés, il faudra donc les décompresser )
Ce sera notre répertoire de travail.
Simulation : Le script en Python qui charge le fichier des régions
Voici le script en Python qui charge le fichier des régions.
copier/coller ce script dans EduPython (utiliser le bouton à droite du script pour le copier dans le presse-papier)
enregistrer le script dans le répertoire dans lequel se trouve les deux fichiers reg2018.txt et comsimp2018.txt.
import csv
with open('reg2018.txt', 'r', encoding='latin1') as f:
dialecte_fichier_csv = csv.Sniffer().sniff(f.readline())
datas_regions = list(csv.reader(f, dialect=dialecte_fichier_csv))
Explication du script :
En français, cela donne :
Importer la bibliothèque csv qui permet à Python de connaître des fonctions lui permettant de manipuler les fichiers au format CSV. Ces fonctions auront un nom préfixé par 'csv.'.
Avec le fichier à ouvrir 'reg2018.txt', encodé avec le jeu de caractères 'latin1', ce fichier étant noté f :
lire la première ligne
(f.readline())
et l'analyser avec la méthodecsv.Sniffer().sniff()
, de manière à trouver quel est le séparateur des champs de ce fichier au format CSV, puis sauvegarder cette information dans la variabledialecte_fichier_csv
,
lire ensuite
(csv.reader())
la suite du fichier f en utilisant l'information sur le séparateur de champs trouvé à l'étape précédente (dialect=dialecte_fichier_csv), et transformer en liste (list()) le résultat de la lecture, qui doit être sauvegardé dans la variabledatas_regions
.
En conséquence, la variable datas_regions
prend pour valeur la liste des données contenues dans le fichier reg2018.txt, sans le nom des descripteurs, donc uniquement les données sur les régions.
Simulation : À faire vous même
Exécuter ce script :
import csv
with open('reg2018.txt', 'r', encoding='latin1') as f:
dialecte_fichier_csv = csv.Sniffer().sniff(f.readline())
datas_regions = list(csv.reader(f, dialect=dialecte_fichier_csv))
print(datas_regions[0])
Vérifiez que cela donne :
['01', '97105', '3', 'GUADELOUPE', 'Guadeloupe']
Cela signifie que pour la région Guadeloupe,
REGION='01', CHEFLIEU = '97105', TNCC='3', NCC='GUADELOUPE', NCCENR='Guadeloupe'.
Connaître le nombre de régions
C'est la longueur de la liste data_regions
Il suffit de rajouter la ligne :
print(len(datas_regions))
Réponse : 18
Faire afficher les données de toutes les régions
Il faut faire une boucle, c'est à dire des instructions qui vont s'exécuter plusieurs fois.
Rajoutez le code suivant
for region in datas_regions:
print(region)
En français, cela signifie : pour chaque région dans la liste datas_regions
, afficher les données sur cette région.
Vous devriez obtenir :
['01', '97105', '3', 'GUADELOUPE', 'Guadeloupe']
['02', '97209', '3', 'MARTINIQUE', 'Martinique']
['03', '97302', '3', 'GUYANE', 'Guyane']
['04', '97411', '0', 'LA REUNION', 'La Réunion']
['06', '97608', '0', 'MAYOTTE', 'Mayotte']
['11', '75056', '1', 'ILE-DE-FRANCE', 'Île-de-France']
['24', '45234', '2', 'CENTRE-VAL DE LOIRE', 'Centre-Val de Loire']
['27', '21231', '0', 'BOURGOGNE-FRANCHE-COMTE', 'Bourgogne-Franche-Comté']
['28', '76540', '0', 'NORMANDIE', 'Normandie']
['32', '59350', '4', 'HAUTS-DE-FRANCE', 'Hauts-de-France']
['44', '67482', '2', 'GRAND EST', 'Grand Est']
['52', '44109', '4', 'PAYS DE LA LOIRE', 'Pays de la Loire']
['53', '35238', '0', 'BRETAGNE', 'Bretagne']
['75', '33063', '3', 'NOUVELLE-AQUITAINE', 'Nouvelle-Aquitaine']
['76', '31555', '1', 'OCCITANIE', 'Occitanie']
['84', '69123', '1', 'AUVERGNE-RHONE-ALPES', 'Auvergne-Rhône-Alpes']
['93', '13055', '0', "PROVENCE-ALPES-COTE D'AZUR", "Provence-Alpes-Côte d'Azur"]
['94', '2A004', '0', 'CORSE', 'Corse']