Chapitre 5 Les Fichiers - Cours PDF

Summary

Ce document présente un cours sur les fichiers et contient des exemples d'utilisation de la programmation en fichier texte et binaire en utilisant Python. Il décrit la façon d'ouvrir, lire et écrire dans les fichiers, ainsi que différentes méthodes comme la fonction *open*.

Full Transcript

Les fichiers Chapitre 5 Les fichiers Noureddine ABOUTABIT API 2 Texte Texte Texte...

Les fichiers Chapitre 5 Les fichiers Noureddine ABOUTABIT API 2 Texte Texte Texte Texte Texte [email protected] Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 1/ 15 Les fichiers Plan 1 Les fichiers Généralité sur les fichiers Manipulation des fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 2/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Généralité sur les fichiers Définition Un fichier désigne un ensemble d’informations stocké sur un support physique : disque dur, CD, DVD, clé USB. Un fichier se caractérise par : 1 un nom qui permet de l’identifier de manière unique (unicité) ; 2 un chemin d’accès qui indique son emplacement dans le disque dur ; 3 la taille ; 4 le type. Types de fichiers Généralement, en programmation on distingue deux types de fichiers : : 1 Fichier texte : les informations sont représentées dans le disque dur selon un code donné(UTF-8, ISO 8859, cp 1250, etc). Ces fichiers sont listables (on peut lire le contenu). 2 Fichier binaire : les informations (n’importe quel type) sont codées telles qu’elles sont dans la mémoire (brut). Ces fichiers ne sont pas listables. Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 3/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Ouverture d’un fichier : open(nomFichier,mode,encodage) Principe La fonction open permet l’ouvreture d’un fichier. L’action d’ouverture signifie deux choses, soit on crée le fichier s’il n’existe pas ou soit on ouvre le fichier pour lire son contenu s’il existe déjà. Syntaxe de la fonction La fonction open(NomFichier,mode,encodage) possède trois arguments : 1 NomFichier : c’est chaı̂ne de caractères qui indique le nom de fichier à ouvrir. En général ce nom, pourra comporter une information (chemin, répertoire...) permettant de préciser l’endroit où se trouve le fichier. 2 Le mode : c’est chaı̂ne de caractères qui indique le mode d’ouverture du fichier. Les différents modes les plus utilisés sont les suivants : * ”r” : lecture seule ; * ”w” : écriture seule (destruction de l’ancienne version si elle existe) ; * ”a” : ouvrir le fichier en mode ajout ; 3 Encodage :cet argument peut être ajouté pour indiquer l’encodage utilisé lors du transfert des données de la RAM vers le disque dur. Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 4/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Les opérateurs de conversion La fonction close() réalise ce que l’on nomme une fermeture de fichier. Cette méthode force l’écriture sur disque dur du tampon associé au fichier Création d’un fichier Ouvrir un fichier Exemple1 Exemple3 >>> f1=open(”CPGE.txt”,”w”) >>> f1=open(”CPGE.txt”,”w”) >>> f1.close() >>> f1.close() Exemple2 Exemple4 >>> NomFich=input(”Donnez le >>> NomFich=input(”Donnez le nom de fichier à creer :”) nom de fichier à ouvrir :”) >>> f1=open(NomFich,“w”) >>> f1=open(NomFich,“r”) >>> f1.close() >>> f1.close() Remarques 1 L’utilisation du mode “r“ pour l’ouverture d’un fichier en lecture est optionnel ; 2 La précision de l’encodage lors de l’ouverture est aussi optionnel ; Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 5/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ La fonction d’écriture : write Principe Pour écrire dans un fichier texte, il faut tout d’abord ouvrir ce fichier en mode écriture ou ajout (write ’w’ ou append ’a’). L’action de l’écriture consiste à transférer la valeur d’une variable (dans la RAM) de type str vers un fichier existant dans le disque dur. Syntaxe La fonction write permet d’écrire des données dans un fichier. Sa syntaxe est : f.write(”chaı̂ne de caractères”), f est le descripteur de fichier. Exemple 1 Résultat 1 Ce code consiste à créer lee fichier ”test.txt” Sur le disque dur ”test.txt” >>>f=open(”test.txt”,”w”) ——————————— >>>f.write(”salut tout le monde\n”) salut tout le monde >>>f.write(”CPGE Maroc\n”) CPGE Maroc >>>f.close().. Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 6/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ La fonction d’ecriture : write Exemple 2 Résulat 2 Cette fonction permet de L’appel de la fonction sauvegarder la table de TablMulti(”Table5.txt”,5 ) permet de multiplication d’un entier n dans créer sur le disque dur ”Table5.txt” un fichier source ——————————————– def TablMulti(source,n) : 1*5=5 f=open(source,”w”) 2*5=10 for i in range(1,11) : 3*5=15 f.write(str(i)) 4*5=20 f.write(”*”) 5*5=25 f.write(str(n)) 6*5=30 f.write(”=”) 7*5=35 f.write(str(i*n)) 8*5=40 f.write(”\n”) 9*5=45 f.close() 10*5=50.. Remarque : on peut faire d=””, d=str(i)+”*”+str(n)+”=”+str(i*n)+”\n” et f.write(d) Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 7/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ La fonction d’ecriture : write Exemple 3 Résulat 3 La fonction Fibonacci retourne la n-ime terme de la suite de Fibonacci >>>TermSuiteFichier(”Fibo.txt”,4) def Fibonacci(n) : ———————————————- a ,b = 1 ,1 1 for i in range(1,n+1) : 2 a,b=b,a+b 3 return b 5 Cette fonction permet de sauvegarder la table de multiplication d’un entier n dans Une autre solution un fichier source def SuiteFiboFichier(Fich,n) : def SuiteFiboFichier(Fich,n) : f=open(Fich,”w”) f=open(Fich,”w”) L=[] for i in range(n) : for i in range(n) : f.write(str(Fibonacci(i))) L=L+[str (Fibonacci(i))] f.write(”\n”) f.writelines(L) f.close() f.close(). Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 8/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ La fonction d’ecriture : write Ecrire à la fin de fichier Il peut être intéressant d’ajouter des lignes à un fichier. Il faut alors l’ouvrir en écriture en mode ’a’ et non ’w’. >>> f out = open(’test.txt’, ’a’, encoding = ’utf-8’) Pour rajouter deux lignes à la fin du fichier test.txt on fait : >>> f out = open(’test.txt’, ’a’, encoding = ’utf-8’) >>> f out.write(”2014\n”) >>> f out.write(”Pyhton est gratuit\n”) >>> f out.close() Le contenu du fichier ”test.txt” devient : —————————————————————– salut tout le monde CPGE Maroc 2014 Pyhton est gratuit Il n’est pas possible de supprimer des lignes dans un fichier. Il faut créer un nouveau fichier et détruire l’ancien ! Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 9/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Méthodes pour la lecture d’un fichier texte Principe Pour lire le contenu d’un fichier texte, il faut tout d’abord ouvrir ce fichier en mode lecture (read ’r’). L’action de lecture consiste à transferer le contenu du fichier (dans le disque dur) vers une variable (dans la RAM). Pour ce faire, on utilise la fonction read : −− >Les variantes de la fonction read —————————————– read() : la méthode read sans argument lit toutes les données présentes dans le fichier et les transfère dans une variable de type chaı̂ne de caractères (string) Exemple 1 Résulat 1 Ce code consiste à lire le fichier ”test.txt” Sur l’écran on obtient : >>>f=open(”test.txt”,”r”) salut tout le monde >>>ch=f.read() CPGE Maroc >>>print(ch) 2014 >>>f.close() Pyhton est gratuit.. Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 10/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Méthodes pour la lecture d’un fichier texte read(size) : la fonction read peut également être utilisée avec un argument size. Celui-ci indiquera combien de caractères doivent être lus, à partir de la position déjà atteinte dans le fichier. Exemple 2 Ce code consiste à lire le fichier ”test.txt” >>>f=open(”test.txt”,”r”) >>>t=f.read(5) >>>print(t) >>>f.close(). Résulat 2 Sur l’écran on obtient : salut. Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 11/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Méthodes pour la lecture d’un fichier texte readline() : cette méthode ne lit qu’une seule ligne à la fois à partir du fichier (en incluant le caractère de fin de ligne). Pour lire le contenu entier de fichier, il suffit d’itérer la lecture jusqu’à ce que la ligne soit vide. Exemple 2 Parcourir un fichier avec for >>>f1=open(”Table5.txt”,”r”) >>>f=open(”test.txt”,”r”) >>>ch=f1.readline() >>>f >>>print(ch) >>>ch=f1.readline() >>> for i in f : >>>print(ch) print(i) 2*5=10 salut tout le monde >>>ch=f1.readline() CPGE Maroc >>>print(ch) 2014 3*5=15 Pyhton est gratuit >>>f1.close() >>>f.close() Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 12/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Méthodes pour la lecture d’un fichier texte Exemple 4 (solution 1) Exemple 4 (solution 2) Une fonction qui lit un fichier Une fonction qui lit un fichier source ligne par ligne source caractère par caractère def LireFichier(source) : def LireFichier(source) : f=open(source,”r”) f=open(source,”r”) while 1 : c=f.read(1) lg=f.readline() while c !=”” : if lg !=”” : print(c) print(lg) c=f.read(1) else : f.close() break.. Résulat 4 : L’appel LireFichier(”test.txt”) affiche sur l’écran salut tout le monde CPGE Maroc 2014 Pyhton est gratuit Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 13/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Méthodes pour la lecture d’un fichier texte readlines() : cette méthode transfère toutes les lignes d’un fichier dans une liste de chaı̂nes de caractères (chaque élément de la liste est une ligne de fichier). Exemple 5 >>>f=open(”test.txt”,”r”) >>>L=f.readlines() >>>print(L) [’salut tout le mond\n’, ’CPGE Maroc\n’, ’2014\n’, ’Python est gratuit\n’] >>>f.close() Remarques La méthode readline() est une méthode qui renvoie une chaı̂ne de caractères, alors que la méthode readlines() renvoie une liste ; À la fin du fichier, readline() renvoie une chaı̂ne vide, tandis que readlines() renvoie une liste vide.. Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 14/ 15 Généralité sur les fichiers Manipulation des fichiers Les fichiers Les fonctions d’entrées-sorties sur les fichiers textes Le module ≪ pickle ≫ Le module ≪ pickle ≫ Les fichiers binaires L’encodage binaire utilise une représentation proche de la machine. Le module ”pickle” permet de traiter des fichiers en mode binaire. La méthode dump() permet d’écrire des données de toutes sortes dans un fichier. La méthode load() permet de lire des données de toutes sortes dans un fichier. Exemple Résulat >>>from pickle import * 27, [12,′ CPGE ′ ] >>>a, b= 27, [12,′ CPGE ′ ] >>>f=open(’DonneesTest’, ’wb’) >>>dump(a,f) Remarques >>>dump(b, f) >>>f.close() - L’option ’wb’ est utilisé pour ouvrir un >>>f= open(’DonnesTest’, ’rb’) fichier binaire en écriture >>>d1,d2= load(f),load(f) - L’option ’rb’ est utilisé pour ouvrir un >>>print(d1,d2) fichier binaire en lecture Noureddine ABOUTABIT ENSA, Khouribga 2024-2025 15/ 15

Use Quizgecko on...
Browser
Browser