# ############################################################### # Application 7 : lecture et affichage formaté d'un fichier CSV # ############################################################### import os # change de répertoire courant : os.chdir('d:\\python') # ---------------------------------------------------- # ETAPE 1 : ouvre le fichier CSV en lecture seule : fic=open('fic_csv.txt','r') liste=fic.readlines() fic.close() print('Voici le contenu brut du fichier CSV :\n') for ligne in liste: print(ligne,end='') print('\n\nCe fichier contient %d lignes (soit %d enregistrements)' % (len(liste),len(liste))) # ---------------------------------------------------- # ETAPE 2 : enregistrement des lignes dans une liste de dictionnaires : liste_dico=[] for ligne in liste: # sépare les champs selon les virgules : enregistrement=ligne.split(',') # enregistre les 6 champs dans un dictionnaire "dico" : dico={} dico['prénom']=enregistrement[0] dico['nom']=enregistrement[1] dico['adresse']=enregistrement[2] dico['cp']=enregistrement[3] dico['ville']=enregistrement[4] dico['téléphone']=enregistrement[5] # ajoute le dictionnaire dico à la liste de dictionnaires "liste_dico" : liste_dico.append(dico) print("\nVoici l'affichage brut de la liste de dictionnaires :") print(liste_dico) # ---------------------------------------------------- # ETAPE 3 : affichage formaté de l'ensemble des enregistrements : print("\nEt voici l'affichage formaté des enregistrements :\n") # traite chacun des dictionnaires contenu dans la liste "liste_dico" : for personne in liste_dico: # pour chaque dictionnaire "personne" on affiche les champs dans l'ordre : print("%s %s" % (personne['prénom'].capitalize(),personne['nom'].upper())) print("%s" % (personne['adresse'])) print("%s %s" % (personne['cp'],personne['ville'].upper())) print("Téléphone : %s" % (personne['téléphone'])) # ---------------------------------------------------- # Fin du programme # nsi.gecif.net # ----------------------------------------------------