Chapitre 3 : Traitement de fichiers Responsable : Dr Ousmane KHOUMA Année Acadé

Chapitre 3 : Traitement de fichiers Responsable : Dr Ousmane KHOUMA Année Académique 2021 - 2022 Université Amadou Mahtar MBOW (UAM) Licence 2 ESTI 1 Introduction Les données en Python peuvent être structurées sous plusieurs formes. Nous pouvons citer, les listes, les dictionnaires, les tuples et les ensembles. La plupart de ces données sont stockées dans des fichiers de types différents. Nous allons voir dans ce chapitre comment traiter les fichiers en python. Par ailleurs, le traitement de certains fichiers demande l’importation de bibliothèques comme pan- das. Ce dernier est open source et permet de manipuler les données de hautes performances. Cette bibliothèque regorge d’outils d’analyse de données. 2 Généralités Un fichier dans un système moderne est composé par : • En-tête : Il contient les métadonnées sur le contenu du fichier (nom du fichier, taille, type, etc.) ; • Données : Elles représentent le contenu du fichier ; • Fin de fichier (End Of File EOF) : Il représente le plus souvent un caractère spécial indicant la fin du fichier. Nous allons voir dans cette partie, les fichiers de types .txt (texte) et .xlsx (excel). 3 Les dictionnaires Les dictionnaires sont des objets pouvant en contenir d’autres, à l’instar des listes. Le dictionnaire Python fonctionne de la même manière qu’un dictionnaire bilingue (Dictionnaire Anglais-Français). Dans le monde de Python, le mot que vous recherchez est appelé une clé. Le mot que vous obtenez du dictionnaire est appelé une valeur. Par exemple le mot « water » en anglais, dans le dictionnnaire, sa définition est eau (clé = water et valeur = eau). 1 Licence 2 ESTI Université Amadou Mahtar MBOW 3.1 Création de dictionnaire La méthode la plus directe pour créer un dictionnaire est en extension comme le code suivant : dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} telephones = {'direction' : 33888, 'secretariat' : 33890, 'service technique': 33870} print(dico) print(telephones) {'dog': 'chien', 'horse': 'cheval', 'cat': 'chat'} {'direction': 33888, 'secretariat': 33890, 'service technique': 33870} Si vous utilisez une clé inexistante, l’exécution produira une erreur. Heureusement, les mots-clés in et not in peuvent nous permettre d’éviter ces situations d’erreurs. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} mots = ['cat', 'lion', 'horse', 'sheep'] # clés à rechercher dans le dictionnaire for m in mots: if m in dico: print(m, "->", dico[m]) else: print(m, "n'est pas dans le dictionnaire") cat -> chat lion n'est pas dans le dictionnaire horse -> cheval sheep n'est pas dans le dictionnaire 3.2 Les méthodes • La méthode keys() La méthode keys() retourne un objet itérable constitué de toutes les clés rassemblées dans le dic- tionnaire. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} for cle in dico.keys(): print(cle, "-->", dico[cle]) dog --> chien horse --> cheval cat --> chat Il est possible de trier (ordonner) les clés du dictionnaire à l’aide de la fonction sorted. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} for cle in sorted(dico.keys()): Dr Ousmane KHOUMA 2 Année Académique 2021 - 2022 Licence 2 ESTI Université Amadou Mahtar MBOW print(cle, "-->", dico[cle]) cat --> chat dog --> chien horse --> cheval • La méthode items() Cette méthode renvoie des tuples où chaque tuple est une paire clé - valeur. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} for anglais, francais in dico.items(): print(anglais, "-->", francais) dog --> chien horse --> cheval cat --> chat • La méthode values() La méthode values() fonctionne de manière similaire à keys(), mais il renvoie des valeurs. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} for francais in dico.values(): print(francais) chien cheval chat 3.3 Quelques traitements sur les dictionnaires • Modification et ajout de valeurs Nous allons remplacer la valeur ‘cheval’ en ‘jument’. Le code Python suivant nous permet de le faire. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} dico['horse'] = 'jument' print(dico) {'dog': 'chien', 'horse': 'jument', 'cat': 'chat'} Vous pouvez ajouter facilement une clé qui n’appartient pas au dictionnaire. dico = {"dog" : "chien", "horse" : "cheval","cat" : "chat"} dico['sheep'] = 'mouton' print("Le nouveau dictionnaire est :\n",dico) Le nouveau dictionnaire est : {'dog': 'chien', 'horse': 'cheval', 'cat': 'chat', 'sheep': 'mouton'} Dr Ousmane KHOUMA 3 Année Académique 2021 - 2022 Licence 2 ESTI Université Amadou Mahtar MBOW Vous pouvez également insérer un élément dans un dictionnaire en utilisant la méthode update (), par exemple : dico ={'dog': 'chien', 'horse': 'cheval', 'cat': 'chat', 'sheep': 'mouton'} dico.update({"duck" : "canard"}) print("Le dictionnaire mis à jours est :\n",dico) Le dictionnaire mis à jours est : {'dog': 'chien', 'horse': 'cheval', 'cat': 'chat', 'sheep': 'mouton', 'duck': 'canard'} Avec la méthode update(), on peut remplir un dictionnaire aisement. identification={} while True: nom = input("Entrez le nom de la personne (ou tapez exit pour quitter): ") if nom == 'exit': break numero = int(input("Entrez le numero d'identification de la personne : ")) identification.update({nom:numero}) print("\n**** Affichage des informations du dictionnaire ****\n") for n in identification: print(n, ":", identification[n]) Entrez le nom de la personne (ou tapez exit pour quitter): NDIAYE Entrez le numero d'identification de la personne : 12345 Entrez le nom de la personne (ou tapez exit pour quitter): DIOP Entrez le numero d'identification de la personne : 34567 Entrez le nom de la personne (ou tapez exit pour quitter): FALL Entrez le numero d'identification de la personne : 45678 Entrez le nom de la personne (ou tapez exit pour quitter): exit **** Affichage des informations du dictionnaire **** NDIAYE : 12345 DIOP : 34567 FALL : 45678 4 Les objets de Pandas 4.1 Les Series de Pandas 4.1.1 Création de Series de Pandas La première structure de Pandas est l’objet Series. On peut créer une Series à partir d’une liste avec des index. Dr Ousmane KHOUMA 4 Année Académique 2021 - 2022 Licence 2 ESTI Université Amadou Mahtar MBOW from pandas import Series # importation de l'objet. Serie_indicatif_1 = Series(['+221','+220','+223','+222'], index=["Senegal","Gambie","Mali","Mauritanie"]) print(Serie_indicatif_1) Senegal +221 Gambie +220 Mali +223 Mauritanie +222 dtype: object On peut créer un objet Series à partir d’un dictionnaire. from pandas import Series # importation de l'objet. Serie_indicatif_2= Series({"Senegal" :'+221',"Gambie" :'+220',"Mali" : , →'+223',"Mauritanie" :'+222'}) print(Serie_indicatif_2) Senegal +221 Gambie +220 Mali +223 Mauritanie +222 dtype: object On peut créer un objet Series à partir d’une fonction de NumPy. import numpy as np from pandas import Series serie_aleatoire= Series(np.random.randn(5), index=["A","B","C","D","E"]) print(serie_aleatoire) A -0.331503 B 1.053059 C 0.967117 D 0.171246 E 1.155038 dtype: float64 4.1.2 Extraction d’éléments de Series de Pandas On peut extraire des éléments directement à partir de l’objet Series. Sf=Serie_indicatif_1.iloc[:2] print(Sf) Senegal +221 Gambie +220 dtype: object Dr Ousmane KHOUMA 5 Année Académique 2021 - 2022 Licence 2 ESTI Université Amadou Mahtar MBOW On peut extraire des éléments par leur index. Sf1=Serie_indicatif_1[["Mauritanie","Senegal"]] print(Sf1) Mauritanie +222 Senegal +221 dtype: object 4.2 Les DataFrame de Pandas Un DataFrame est un type spécifiquement dédié à la manipulation des données. Il est considéré comme une matrice avec des colonne de types différents. Il se comporte comme un dictionnaire dont les clés sont les noms des colonnes et les valeurs sont des séries. Exemple 1 : Utilisation des matrices import numpy as np import pandas as pd ar = np.array([[1, 2, 3, 4], [7, 10, 5, 8], [5, 9, 15, 20]]) df1 = pd.DataFrame(ar, index = ['a1', 'a2', 'a3'], columns = ['A', 'B', 'C',␣ , →'D']) df1 A B C D a1 1 2 3 4 a2 7 10 5 8 a3 5 9 15 20 Exemple 2 : Utilisation des dictionnaire import numpy as np import pandas as pd etudiant=["DIOP","DIAW","NDIAYE","TOURE","KA"] dico1={"Nom" : etudiant, "MoyenneInfo" :[12,15,9,10,17],"Décision" : , →["Admis","Admis","Ajouné","Admis","Admis"]} df2=pd.DataFrame(dico1) # Création du DataFrame df2 Nom MoyenneInfo Décision 0 DIOP 12 Admis 1 DIAW 15 Admis 2 NDIAYE 9 Ajouné 3 TOURE 10 Admis 4 KA 17 Admis Dr Ousmane KHOUMA 6 Année Académique 2021 - 2022 Licence 2 ESTI Université Amadou Mahtar MBOW On peut extraire les informtions d’une ligne utilisant : df2.loc[3] Nom TOURE MoyenneInfo 10 Décision Admis Name: 3, dtype: object On peut extraire une ligne par sa position en utilisant : df2.iloc[4] Nom KA MoyenneInfo 17 Décision Admis Name: 4, dtype: object 5 Les fichiers texte (.txt) 5.1 Ecriture d’un fichier texte Pour créer un fichier texte, on utilise la fonction avec les options suivante : • “w” (Write). Cette option crée un nouveau fichier ou écrase le fichier s’il existe déjà ; • “a” signifie Append créera un fichier si le fichier spécifié n’existe pas ; • L’option “r+” permet l’ouverture en mode lecture et écriture. Si le fichier n’existe pas, une erreur est renvoyée ; • “x” : Cette option crée un fichier s’il n’existe pas et renvoie une erreur si le fichier existe. Exemple : f=open("ingenierie.txt", "w") La fonction open() permet d’ouvrir un fichier en mode écriture avec l’option « w ». Elle renvoie un objet de type fichier référencé par f. Pour remplir un fichier, on utilise la fonction write(). Elle permet d’écrire une chaîne de caractères dans le fichier. Prenons par exemple le fichier ingénierie.txt. f=open("ingenierie.txt", "w") # Ouverture en mode écriture # Ecriture des données dans le fichier uploads/Geographie/ traitement-fichiers-esti.pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager