Manipulation de données au format .csv
Après avoir lu et compris le cours précédent, réaliser les différentes petites activités suivantes :
Simulation : Manipuler un nouveau fichier CSV
Créer un fichier table_films.csv à partir de la table "film"[1] contenant 4 enregistrements et 5 descripteurs (nom, pays, année, genre et réalisateur),
Créer le programme Python (lecture_csv.py) de lecture de cette table permettant de lister l'objet Python complet et le 3è enregistrement,
Afficher enfin dans une liste les 5 descripteurs de la table.
Il s'agit finalement de refaire la page de rappels appliquée à cette nouvelle table.
Fonction importer_csv()
À partir de maintenant, on reprend le fichier matable.csv de la page précédente (celui avec les pseudos).
On vous propose la fonction importer_csv() suivante :
def importer_csv(fichier_ouvert):
"""
...
"""
#on récupère les lignes du fichier
lignes=fichier_ouvert.readlines()
clefs=lignes[0].rstrip().split(';')
enregistrements=[] #on initialise la liste des enregistrements obtenus
for i in range(1,len(lignes)): #on parcourt...
valeurs=lignes[i].rstrip().split(';') #on extrait les valeurs
enregistrements.append({}) #on prépare le dctionnaire qui recueille les valeurs
for j in range(len(clefs)): #on parcourt les descripteur
enregistrements[i-1][clefs[j]]=valeurs[j] #on associe à chaque clef sa valeur
return clefs,enregistrements
Bien comprendre cette fonction et compléter le docstring de cette fonction, mais aussi les commentaires
Détection d'un potentiel doublon
On se propose de s'inspirer de la fonction précédente pour créer une fonction pseudo_present() qui prend en entrée un fichier (matable.csv via l'objet fichier ouvert) et une chaîne de caractère (pseudo), qui sera notre pseudo à tester.
Si le pseudo est présent dans la table, on renvoie True, sinon False.
Compléter la fonction suivante (les ...) afin de réaliser cette opération :
def pseudo_present(fichier_ouvert,pseudo):
"""
Vérifie la présence d'un pseudo dans une table de comptes
"""
# on récupère les lignes
...
...: #on parcourt les lignes du fichier à partir de la deuxième (la première ce sont les descripteurs)
valeurs=... #on extrait les valeurs
if ...:
return True # on renvoie True si on trouve le pseudo
return False # sinon n'a pas trouvé le pseudo
Lire une documentation
Nous allons utiliser une nouvelle méthode pour manipuler notre fichier :
with open('matable.csv','a',encoding='utf-8') as utilisateurs:
pass
À l'aide d'un terminal ayant ouvert python3, appeler l'aide de la méthode open. On pourra utiliser pour cela help().
Donner la signification du paramètre 'a'.
Insérer un enregistrement
Compléter le code de la fonction inserer() ci-dessous. On n'utilisera que l'instruction print pour écrire dans le fichier.
Auparavant, vous aurez fait appel à l'aide de la fonction print() afin de prendre en compte le paramètre sep mais aussi file ; l'idée était bien sûr d'écrire (print()) dans le fichier ouvert...
def inserer(fichier_ouvert, enregistrement):
"""
Insère un enregistrement à la fin d'un fichier csv
Paramètres :
fichier_ouvert : ficher csv ouvert en écriture, pointeur à la fin
enregistrement : dictionnaire représentant l'objet à enregistrer dans la table
Valeur renvoyée : None
"""
pass