Bonjour pouvez-vous m'aider merci

2) On donne un fichier csv en PJ sur Pronote. On a écrit le programme ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
def fonction(f : str, s : str = ";") -> dict:
 a = open(f,'r')
 for i in a.readlines():
 print(i.strip('\n').split(s))
fonction('exemple.csv')
  1. En testant ce programme avec Spyder ou VSCode, expliquez ligne par ligne ce que fait cette fonction.
  2. Ce code n'est pas aux normes PEP8 de bonne écriture de code Python. Réécrivez ce programme en renommant toutes les variables afin de rendre le code plus lisible.


3) On souhaite maintenant enregistrer ce qui est produit à la ligne 4 et on doit modifier le programme. Réécrivez le programme en :
  • créant un tableau tabLigne
  • ajoutant chaque enregistrement (=ligne) dans une variable appelée tabLigne.
  • renvoyant tabLigne à la fin de la fonction.


4) Finalement, pour importer un fichier CSV, nous avons besoin de dictionnaires contenant les en-têtes (variable header) et les valeurs. On dispose du programme suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
def tableau2dictionnaire(tabLigne: list) -> list:
 header = tabLigne.pop(0)
 csvFile = []
 for ligne in tabLigne:
 enregistrement = dict()
 for indice in range(len(header)):
 enregistrement[…………………………]=…………………………
 csvFile.append(enregistrement)
 return csvFile
  1. Quelle ligne du fichier CSV contient les en-têtes ? À quelle ligne de tabLigne cela correspond-il ? Expliquez la ligne 2.
  2. Expliquez ligne par ligne ce qu'est censé faire cette fonction.
  3. Complétez cette fonction afin qu'il permette d'afficher ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table = [{'Nom': 'Erwann', 'Français': '16', 'Science': '12', 'Histoire': '15'},
    {'Nom': 'Céline', 'Français': '14', 'Science': '16', 'Histoire': '13'}]