Données structurées TP n° 2


Écrire votre nom ici

Nom :


Traitement de données avec un programme en Python

Nous aurons besoin d'une bibliothèque pour ce notebook

  • La bibliothèque csv pour manipuler des fichiers csv

Téléchargez ce fichier et déposez le dans le dossier de ce notebook

Le programme ci-dessous charge le fichier Lycee2.csv et affiche la première ligne du fichier chargé

In [ ]:
#import des bibliothèques
import csv

# Importation des données au format CSV
with open('lycee2.csv','r', encoding='utf-8') as f:
    premiere_ligne = f.readline()
    print("Les descripteurs de la collection des établissements scolaires :")
    print(premiere_ligne)
    dialecte_fichier_csv = csv.Sniffer().sniff(premiere_ligne)
    data_lignes = list(csv.reader(f, dialect=dialecte_fichier_csv))

# on met le tout dans une liste
etablissement=[]
for ligne in data_lignes:
    etablissement.append(ligne)

print(etablissement[0])

Les lignes sont des listes

Pour repérer un élément d'une ligne il faut savoir à quel indice il se trouve dans la liste

Par exemple la dénomination principale de l'établissement se trouvant à la ligne 25 (la 26ème puisque la première est la ligne 0) : est COLLEGE

Comme le montre le programme ci-dessous :

In [ ]:
#import des bibliothèques
import csv

# Importation des données au format CSV
with open('lycee2.csv','r', encoding='utf-8') as f:
    premiere_ligne = f.readline()
    print("Les descripteurs de la collection des établissements scolaires :")
    print(premiere_ligne)
    dialecte_fichier_csv = csv.Sniffer().sniff(premiere_ligne)
    data_lignes = list(csv.reader(f, dialect=dialecte_fichier_csv))

# on met le tout dans une liste
etablissement=[]
for ligne in data_lignes:
    etablissement.append(ligne)

print(etablissement[25][2])

Faire une recherche à partir d'un critère

Le numéro UAI du Lycée Jean Moulin (Draguignan) est : 0830015R

Nous allons parcourir la liste des établissements et nous ferons afficher la ligne correspondant au lycée Jean Moulin

Exécutez le programme ci-dessous

In [ ]:
#import des bibliothèques
import csv

# Importation des données au format CSV
with open('lycee2.csv','r', encoding='utf-8') as f:
    premiere_ligne = f.readline()
    print("Les descripteurs de la collection des établissements scolaires :")
    print(premiere_ligne)
    dialecte_fichier_csv = csv.Sniffer().sniff(premiere_ligne)
    data_lignes = list(csv.reader(f, dialect=dialecte_fichier_csv))

# on met le tout dans une liste
etablissement=[]
for ligne in data_lignes:
    etablissement.append(ligne)

for ligne in etablissement:
    if ligne[0]=='0830015R':
        print(ligne)

On peut améliorer l'affichage

In [ ]:
#import des bibliothèques
import csv

# Importation des données au format CSV
with open('lycee2.csv','r', encoding='utf-8') as f:
    premiere_ligne = f.readline()
    print("Les descripteurs de la collection des établissements scolaires :")
    print(premiere_ligne)
    dialecte_fichier_csv = csv.Sniffer().sniff(premiere_ligne)
    data_lignes = list(csv.reader(f, dialect=dialecte_fichier_csv))

# on met le tout dans une liste
etablissement=[]
for ligne in data_lignes:
    etablissement.append(ligne)

for ligne in etablissement:
    if ligne[0]=='0830015R':
        
        print("===============================================================")
        print(ligne[1])
        print(ligne[7]," ",ligne[5])
        print(ligne[8])
        print(ligne[9])

Faire afficher tous les établissements d'une ville

Le programme ci-dessous demande à l'utilsateur un nom de ville et affiche les résultats de la recherche

In [ ]:
#import des bibliothèques
import csv

# Importation des données au format CSV
with open('lycee2.csv','r', encoding='utf-8') as f:
    premiere_ligne = f.readline()
    print("Les descripteurs de la collection des établissements scolaires :")
    print(premiere_ligne)
    dialecte_fichier_csv = csv.Sniffer().sniff(premiere_ligne)
    data_lignes = list(csv.reader(f, dialect=dialecte_fichier_csv))

# on met le tout dans une liste
etablissement=[]
for ligne in data_lignes:
    etablissement.append(ligne)

s=input("Entrez un nom de ville")

s=s.upper()# mise en majuscules
for ligne in etablissement:
    if s in ligne[9]:# si s est dans le texte
        print("================================================")
        print(ligne[1])
        print(ligne[7]," ",ligne[5])
        print(ligne[8])
        print(ligne[9])

À faire :

Votre mission :

Reprendre le programme précédent et rajouter l'information se trouvant sur : secteur_public_prive_libe

In [ ]:
# Écrire le programme ici

À faire :

Votre mission :

Écrire un programme qui demande à l'utilisateur:

  • Un nom de ville
  • Un type d'établissement : ecole, college ou lycee ( on oubliera les problèmes d'accents )

Et qui affichera les résultats

In [ ]:
# Écrire le programme ici

À faire :

Votre mission :

Faire, à l'aide d'un programme, afficher l'école où vous avez appris à lire

In [ ]:
# Écrire le programme ici