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 :

SimulationManipuler un nouveau fichier CSV

  1. 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),

  2. Créer le programme Python (lecture_csv.py) de lecture de cette table permettant de lister l'objet Python complet et le 3è enregistrement,

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

1
def importer_csv(fichier_ouvert):
2
    """
3
    ...
4
    """
5
    #on récupère les lignes du fichier
6
    lignes=fichier_ouvert.readlines()
7
8
    clefs=lignes[0].rstrip().split(';')
9
  
10
    enregistrements=[] #on initialise la liste des enregistrements obtenus
11
    for i in range(1,len(lignes)): #on parcourt...
12
        valeurs=lignes[i].rstrip().split(';') #on extrait les valeurs
13
        enregistrements.append({}) #on prépare le dctionnaire qui recueille les valeurs
14
        for j in range(len(clefs)): #on parcourt les descripteur
15
            enregistrements[i-1][clefs[j]]=valeurs[j] #on associe à chaque clef sa valeur
16
    return clefs,enregistrements
17

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 :

1
def pseudo_present(fichier_ouvert,pseudo):
2
    """
3
    Vérifie la présence d'un pseudo dans une table de comptes
4
    """
5
    # on récupère les lignes
6
    ...
7
    
8
    ...: #on parcourt les lignes du fichier à partir de la deuxième (la première ce sont les descripteurs)
9
        valeurs=... #on extrait les valeurs
10
        if ...:
11
            return True # on renvoie True si on trouve le pseudo
12
    return False # sinon n'a pas trouvé le pseudo

Lire une documentation

Nous allons utiliser une nouvelle méthode pour manipuler notre fichier :

1
with open('matable.csv','a',encoding='utf-8') as utilisateurs:
2
    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...

1
def inserer(fichier_ouvert, enregistrement):
2
    """
3
    Insère un enregistrement à la fin d'un fichier csv
4
    Paramètres :
5
      fichier_ouvert : ficher csv ouvert en écriture, pointeur à la fin
6
      enregistrement : dictionnaire représentant l'objet à enregistrer dans la table
7
    Valeur renvoyée : None
8
    """
9
    pass