Chap. 15 — 120 ans d'Olympisme

1. Introduction

Sur le site du CIO, on peut trouver le fichier au format CSV : athlete_events.csv. Ce fichier contient des informations sur tous les participants aux épreuves olympiques des « temps modernes », depuis 1896. La semaine de l'Olympisme est l'occasion de découvrir le format csv ; c'est la partie « Manipulation de données en tables » du programme.

2. Format CSV

Comma-separated values, connu sous le sigle CSV, est un format texte ouvert représentant des données tabulaires sous forme de valeurs séparées par des virgules ou des point-virgule. Un fichier CSV est un fichier texte), par opposition aux formats dits « binaires ». Chaque ligne du texte correspond à une ligne d'un tableau et les virgules correspondent aux séparations entre les colonnes. Les portions de texte séparées par une virgule correspondent ainsi aux contenus des cellules d'un tableau. Une ligne est une suite ordonnée de caractères terminée par un caractère de fin de ligne (line breakLF ou CRLF)).

3. Travail à réaliser

Avant tout travail, recopier les lignes suivantes (et les comprendre) au début du fichier source :
                
"""
Données en table
Semaine de l'Olympisme : Liste des participants depuis la création des
jeux olympiques.

Champs et types du fichier csv (dans l'ordre):
ID	 : int, Name : str, 	Sex : str, 	Age	 : int, Height : int, 	Weight : int,
Team : str, NOC : str, Games : str, Year : int, Season : str, City : str,
Sport : str, Event : str, Medal : str
"""
                
            

3.1. Lecture des données dans le fichier

Aide
  • La méthode readlines permet de récupérer toutes les lignes d'un fichier au sein d'une liste.
  • La fonction open permet de créer un objet de type fichier.
Solution
                    
def recuperation_lignes_fichier(nom_fichier):
    """ str -> List[str]
                    
    Ouvre le fichier nom_fichier et récupère les informations.
    Chaque ligne du fichier est une chaîne de caractères et constitue
    un élément de la liste retournée.
    """
    fichier = open(nom_fichier, 'r')
    res = fichier.readlines()
    fichier.close()
    return res

def main():
    """ Fonction principale """

    nom_fichier = "athlete_events.csv"
    lignes_fichier = recuperation_lignes_fichier(nom_fichier)
    # print(lignes_fichier)

main()
                    
                

3.2. Traitement des chaînes de caractères

Aide
  • La méthode strip d'une chaîne de caractères permet de supprimer les caractères de fin de ligne.
  • La méthode split d'une chaîne de caractères permet de la découper et de former une liste de chaînes de caractères.
Solution
                        
def traitement_lignes(lignes):
    """ List[str] -> List[List[str]]
                        
    Suppression de la première ligne qui est uniquement constituée des
    champ puis, pour chaque élément de la liste lignes, suppression du
    caractère de fin de ligne. Pour finir, découpage de la chaîne de
    caractères de façon à  ce que chaque champ constitue l'élément d'une liste.
    La liste retournée est donc constituée d'autant de sous listes qu'il y
    a d'éléments dans la liste lignes.
    """
    res = []
    for ligne in lignes[1:]:
        ligne = ligne.strip()
        liste_ligne = ligne.split(";")
        res.append(liste_ligne)
    return res

def main():
    """ Fonction principale """

    nom_fichier = "athlete_events.csv"
    lignes_fichier = recuperation_lignes_fichier(nom_fichier)
    # print(lignes_fichier)
    liste_elts_lignes = traitement_lignes(lignes_fichier)
    #print(liste_elts_lignes)

main()
                        
                    

3.3. Construction d'un dictionnaire d'informations pour chaque Olympiade

3.4. Exemples d'analyse des données

L'object de cette partie est d'utiliser la liste de dictionnaires construite dans la section précédente.