Academia.eduAcademia.edu

Les fichiers en Python - Yassine Ben Salah

2021, Les fichiers en Python - Yassine Ben Salah

Formation Python - Les fichiers - Yassine Ben Salah - Yassine Ben Ghriba

Formation Python Les fichiers en Python Formateur Yassine Ben Salah Formation Python Les fichiers en Python Formateur : Yassine Ben Salah 2 Les fichiers en Python Création d’un fichier Pour créer un nouveau fichier en Python, on utilise la méthode open() avec l’un des paramètres suivants :  “x” : Ce mode d’ouverture permet de créer un fichier s’il n’existe pas et renvoie une erreur si le fichier existe  “a” : (Append) : permet de créer un fichier si le fichier spécifié n’existe pas et mettre le curseur à la fin du fichier pour l'ajout si le fichier existe  “w” : (Write) : permet de créer un fichier si le fichier spécifié n’existe pas. Si le fichier existe, son contenu sera écrasé Formateur : Yassine Ben Salah 3 Les fichiers en Python # Création d'un fichier ''' x : Ce mode d’ouverture permet de créer un fichier s’il n’existe pas et renvoie une erreur si le fichier existe ''' f = open ("test1.txt", "x") ''' a : (Append) : permet de créer un fichier si le fichier spécifié n’existe pas, et mettre le curseur à la fin du fichier pour l'ajout ''' f = open ("test2.txt", "a") ''' w : (Write) : permet de créer un fichier si le fichier spécifié n’existe pas. Si le fichier existe, son contenu sera écrasé ''' f = open ("test3.txt", "w") Formateur : Yassine Ben Salah 4 Les fichiers en Python Ouverture d’un fichier En langage Python, il n’est pas nécessaire d’importer une bibliothèque pour lire et écrire sur les fichiers. La fonction open() intégrée dans Python permet d’obtenir un objet fichier (Pyhon file object). La fonction open() permet l’ouverture d’un fichier Id_fichier = open(nom_fichier, mode_ouverture) Formateur : Yassine Ben Salah 5 Les fichiers en Python Modes d’ouverture d’un fichier Le mode ‘r’ : ouverture d’un fichier existant en lecture seule  Le mode ‘w’ : ouverture en écriture seule, écrasé s’il existe déjà et crée s’il n’existe pas,  Le mode ‘a’ : ouverture et écriture en fin du fichier avec conservation du contenu existant  Le mode ‘r+’ , ‘a+’ , ‘w+’ : ouverture en lecture et écriture  Le mode ‘b’ : ouverture en mode binaire  Formateur : Yassine Ben Salah 6 Les fichiers en Python Le mot clé with Il existe une autre syntaxe qui permet d’éviter le problème en cas d’oubli du fermeture de fichier. On peut utiliser le mot clé with with open (nom_fichier, mode_ouverture) as Id_fichier : # Opérations sur le fichier Formateur : Yassine Ben Salah 7 Les fichiers en Python Ouverture et lecture d’un fichier Pour lire un fichier existant, on utilise la méthode read() La méthode read() permet de lire le contenu total ou partiel d’un fichier, après être ouvert avec la méthode open(). contenu = nom_fichier.read() Formateur : Yassine Ben Salah 8 Les fichiers en Python # Lecture du contenu total d'un fichier f = open("test.txt" , "r") # Ouverture du fichier pour lecture contenu = f.read() # lecture pour récupérer le contenu de fichier print(contenu) # Affichage du contenu f.close() # Fermeture du fichier N.B. : Le fichier qu’on veut lire et le fichier contient le script doivent être dans le même emplacement, si non il faut indiquer son emplacement Formateur : Yassine Ben Salah 9 Les fichiers en Python # Lecture du contenu total d'un fichier # Autre syntaxe avec with with open("test.txt" , "r") as f : contenu = f.read() print(contenu) Formateur : Yassine Ben Salah # Ouverture du fichier pour lecture # lecture pour récupérer le contenu de fichier # Affichage du contenu 10 Les fichiers en Python Lecture partielle avec la méthode read() La méthode read() peut être également utilisée pour lire une partie du fichier seulement en indiquant le nombre de caractère à lire entre parenthèse # Lecture du contenu partiel d'un fichier f = open("test.txt" , "r") # Ouverture du fichier pour lecture # lecture de 21 premiers caractères du contenu du fichier ch = f.read(21) print(ch) f.close() Formateur : Yassine Ben Salah # Affichage du ch # Fermeture du fichier 11 Les fichiers en Python # Lecture du contenu partiel d'un fichier f = open("test.txt" , "r") # Ouverture du fichier pour lecture # lecture des caractères entre [25:39] ch= f.read()[25:39] print(ch) # Affichage du ch f.close() # Fermeture du fichier Formateur : Yassine Ben Salah 12 Les fichiers en Python Lecture séquentielle caractère par caractère La méthode read() pourra être utilisée aussi pour effectuer une lecture séquentielle caractère par caractère en utilisant la boucle for: ou bien la boucle while: Formateur : Yassine Ben Salah 13 Les fichiers en Python # Lecture séquentielle caractère par caractère avec la boucle for f = open("test.txt" , "r") # Ouverture du fichier pour lecture # lecture séquentielle caractère par caractère du contenu du fichier contenu="" for c in f.read() : contenu = contenu + c print(contenu) f.close() Formateur : Yassine Ben Salah # Affichage du contenu # fermeture du fichier 14 Les fichiers en Python # Lecture séquentielle caractère par caractère avec la boucle while f = open("test.txt", 'r') contenu ="" while 1: c = f.read(1) if c =="": break contenu = contenu + c print(contenu) f.close() N.B. : Après exécution de la fonction read(1), le curseur se trouve à la position du caractère 2 , et la lecture débutera depuis le 2ème caractère et ainsi de suite. Formateur : Yassine Ben Salah 15 Les fichiers en Python Lecture ligne par ligne avec la méthode readline() La méthode readline() permet de lire un fichier ligne par ligne. Cette méthode pointe sur la première ligne lors de sa première exécution, ensuite sur la deuxième ligne lors de sa seconde exécution et ainsi de suite jusqu’à la Nème ligne Formateur : Yassine Ben Salah 16 Les fichiers en Python # Lecture ligne par ligne avec readline() f = open("test.txt", 'r') # Ouverture du fichier pour lecture contenu="" while 1: ligne = f.readline() # lecture d'une ligne if (ligne == ""): break contenu = contenu + ligne print(contenu) # Affichage de la totalité des lignes f.close() # Fermeture de fichier Formateur : Yassine Ben Salah 17 Les fichiers en Python La méthode readlines() La méthode readlines(), renvoie une liste dont les éléments sont les lignes du fichier Formateur : Yassine Ben Salah 18 Les fichiers en Python # Lecture des lignes du fichier avec readlines() f = open("test.txt",'r') # Ouverture du fichier pour lecture content = f.readlines() # lecture des lignes du fichier avec readlines() print(type(content)) # <class 'list'> # readlines() renvoie une liste dont les éléments sont les lignes du fichier print(content[0]) # Affichage de la première ligne print(content[1]) # Affichage de la deuxième ligne f.close() # Fermeture de fichier Formateur : Yassine Ben Salah 19 Les fichiers en Python # Lecture des lignes du fichier avec readlines() en utilisant la boucle for f = open("test.txt",'r') # Ouverture du fichier pour lecture content = f.readlines() # lecture des lignes du fichier avec readlines() # content est de type liste for ligne in content : # Affichage d’une ligne print(ligne) f.close() # Fermeture de fichier Formateur : Yassine Ben Salah 20 Les fichiers en Python # Nombre de lignes d'un fichier f = open("test.txt",'r') # Ouverture du fichier pour lecture content = f.readlines() # lecture des lignes du fichier avec readlines() # content est de type liste ''' Le nombre d'éléments de la liste content correspond au nombre de lignes du fichier ''‘ print(len(content)) f.close() Formateur : Yassine Ben Salah # Affichage du nombre d'élément de la liste content # Fermeture de fichier 21 Les fichiers en Python # Lecture des lignes du fichier avec readlines() en utilisant la boucle for # Autre méthode f = open("test.txt",'r') # Ouverture du fichier pour lecture content = f.readlines() # lecture des lignes du fichier avec readlines() # content est de type liste for l in range (len(content)) : # Affichage d’une ligne print(content[l]) f.close() # Fermeture de fichier Formateur : Yassine Ben Salah 22 Les fichiers en Python Lecture d’un fichier à une position précise avec la méthode readlines() ''' lecture d’un fichier depuis le caractère 10 jusqu’au caractère 20 de la troisième ligne ''' f = open("test.txt",'r') # Ouverture du fichier pour lecture # lecture de la troisième ligne du fichier avec readlines() ligne = f.readlines()[2] ''' extraction depuis le caractère 10 jusqu'au caractère 20 du troisième ligne ''' res = ligne[9 : 20] print(res) f.close() # Fermeture de fichier Formateur : Yassine Ben Salah 23 Les fichiers en Python Méthode seek() La méthode seek() permet de sélectionner une position précise pour lecture ou écriture Formateur : Yassine Ben Salah 24 Les fichiers en Python # Lire le fichier à partir de la 8ème position f = open("test.txt",'r') # Ouverture du fichier pour lecture f.seek(7) # sélection de la position 8 content = f.read() # lire le fichier à partir de la 8ème position print(content) # Affichage f.close() # Fermeture de fichier Formateur : Yassine Ben Salah 25 Les fichiers en Python Ouverture et écriture dans un fichier Pour écrire dans un fichier existant, on doit ajouter l’un des paramètres à la fonction open():  “w” : (Write) : écrasera tout contenu existant  “a” : (Append) : Permet d’ajouter à la fin du fichier  ”r+” : Lecture et écriture sans écraser le contenu existant Pour écrire dans fichier ouvert en mode écriture, on utilise la fonction write() nom_fichier.write(contenu) Formateur : Yassine Ben Salah 26 Les fichiers en Python Ecriture avec conservation du contenu existant # ouverture pour écriture avec conservation du contenu existant f = open ("test.txt", "a") # a : append # Ajouter un contenu à la fin du fichier f.write ("\nPython peut être utilisé dans l’intelligence artificielle.") f.close () # Fermeture de fichier # ouvrir et lire le fichier après l’ajout f = open ("test.txt", "r") print (f.read()) Formateur : Yassine Ben Salah 27 Les fichiers en Python # ouverture pour écriture avec conservation du contenu existant # Autre syntaxe avec with with open ("test.txt", "a") as f : # a : append # Ajouter un contenu à la fin du fichier f.write ("\nPython peut être utilisé dans l’intelligence artificielle.") # ouvrir et lire le fichier après l’ajout with open ("test.txt", "r") as f : print (f.read()) Formateur : Yassine Ben Salah 28 Les fichiers en Python Ouverture et écrasement du contenu existant # ouverture pour écriture avec écrasement du contenu existant f = open ("test.txt", "w") # w : ouverture et écrasement du contenu # Ajouter un contenu au fichier f.write ("le contenu de fichier est écrasé") f.close () # Fermeture de fichier # ouvrir et lire le fichier après l’ajout f = open ("test.txt", "r") print (f.read()) Formateur : Yassine Ben Salah 29 Les fichiers en Python La méthode writelines() La méthode writelines() permet d’ajouter une chaîne ou une liste de chaîne à un fichier ouvert en mode écriture Formateur : Yassine Ben Salah 30 Les fichiers en Python # Méthode writelines f1 = open ("test1.txt", "w") l = ["ligne1\n","ligne2\n", "ligne3\n"] # liste de chaînes ''' writelines permet d'ajouter une chaîne ou une liste de chaines à un fichier ''' f1.writelines(l) f1.close() f1 = open ("test1.txt", "r") print(f1.read()) f1.close() Formateur : Yassine Ben Salah 31 Les fichiers en Python Récapitulatif des méthodes Python associées à un objet fichier Méthode Description nomfichier.read(n) Lit les n premiers caractères du fichier nomfichier.readline() Lit une seule ligne dans un fichier nomfichier.readlines() lit et renvoie la liste de toutes les lignes du fichier Formateur : Yassine Ben Salah 32 Les fichiers en Python Méthode Description nomfichier.write(ch) Ecrit la chaine ch dans le fichier nomfichier.writelines(séquence) Ecrit une séquence (chaîne ou liste de chaîne) dans le fichier nomfichier.tell() Renvoie la position du pointeur interne dans le fichier nomfichier.seek( ) Permet de repositionner le pointeur dans le fichier Formateur : Yassine Ben Salah 33 Les fichiers en Python Méthode nomfichier.next() Description Retourne la ligne suivante du fichier nomfichier.seekable() Vérifie si le fichier prend en charge l’accès aléatoire. Renvoie True si oui. nomfichier.truncate(n) Tronque la taille du fichier. Si n est fourni, le fichier est tronqué à n octets, sinon tronqué à l’emplacement actuel nomfichier.fileno() Retourne un descripteur entier d’un fichier Formateur : Yassine Ben Salah 34 Les fichiers en Python Méthode Description nomfichier.flush() Vide le tampon interne nomfichier.isatty() Renvoie true si le fichier est connecté à un périphérique tty. nomfichier.close() Ferme un fichier ouvert Formateur : Yassine Ben Salah 35 Les fichiers en Python Copie d’un fichier dans un autre répertoire # Copie d'un fichier dans un autre répertoire # Le module os permet d’interagir avec le système d'exploitation ''' Le module shutil est un module utilitaire qui peut être utilisé pour : copier, déplacer ou supprimer des fichiers ou des répertoires ''' import os import shutil source = "flowers.jpg" # Le fichier à copier target = ("c:/images/flowers.jpg") # Le chemin du répertoire cible shutil.copy(source , target) Formateur : Yassine Ben Salah # copier le fichier dans le répertoire cible 36 Les fichiers en Python Déplacer un fichier dans un autre répertoire # Déplacer un fichier dans un autre répertoire # Le module os permet d’interagir avec le système d'exploitation ''' Le module shutil est un module utilitaire qui peut être utilisé pour : copier, déplacer ou supprimer des fichiers ou des répertoires ''' import os import shutil source = "flowers.jpg" target = ("c:/images/flowers.jpg") # Le fichier à déplacer # Le chemin du répertoire cible shutil.copy(source , target) # copier le fichier dans le répertoire cible os.remove(source) # supprimer le fichier du répertoire source Formateur : Yassine Ben Salah 37