OUJOOD.COM
Ouverture de fichier en python
Les fichiers texte :
Dans ce type de fichier, chaque ligne de texte est terminée par un caractère spécial appelé EOL (End of Line), qui est par défaut le caractère de nouvelle ligne ('\n') dans python.Les fichiers binaires :
Dans ce type de fichier, il n'y a pas de terminaison pour une ligne et les données sont stockées après avoir été converties en langage binaire compréhensible par la machine.Mode d'accès
Les modes d'accès déterminent le type d'opérations possibles dans le fichier ouvert. Ils font référence à la manière dont le fichier sera utilisé une fois ouvert. Ces modes définissent également l'emplacement du curseur de fichier dans le fichier. Le curseur de fichier est similaire à une poignée, qui définit l'endroit où les données doivent être lues ou écrites dans le fichier. Les différents modes d'accès pour la lecture d'un fichier sont les suivants1. Lecture seule ('r') : Ouvrir le fichier texte pour la lecture. Le curseur est positionné au début du fichier. Si le fichier n'existe pas, une erreur d'entrée/sortie est générée. C'est également le mode par défaut dans lequel le fichier est ouvert.
2. Lecture et écriture ('r+') : Ouvre le fichier pour la lecture et l'écriture. Le curseur est positionnée au début du fichier. Lance une erreur d'E/S si le fichier n'existe pas.
3. Ajouter et lire ('a+') : Ouvre le fichier pour la lecture et l'écriture. Le fichier est créé s'il n'existe pas. Le curseur est positionnée à la fin du fichier. Les données en cours d'écriture seront insérées à la fin, après les données existantes.
Note : Pour en savoir plus sur le mode d'accès, cliquez ici.
Ouverture d'un fichier en python
Avant de faire toute manipulation sur un fichier, il faut tout en premier lieu l'ouvrir.L'ouverture de fichier en python se fait à l'aide de la fonction open(). Pour cette fonction, il n'est pas nécessaire d'importer de module.
La syntaxe est :
Objet_fichier = open(r"Nom_de_fichier", "Mode_d'accès")
Le fichier doit exister dans le même répertoire que le fichier du programme python, sinon, l'adresse complète du fichier doit être écrite à la place du nom de fichier.(par exemple: "C:\dossier\non du fichier")
Note : Le r avant le nom de fichier permet d'éviter que les caractères de la chaîne du nom de fichier soient traités comme des caractères spéciaux.
Par exemple, s'il y a \temp dans l'adresse du fichier, alors \t est traité comme le caractère de tabulation et une erreur est levée pour adresse invalide.
Le r rend la chaîne brute, c'est-à-dire qu'il indique que la chaîne ne contient aucun caractère spécial. Le r peut être ignoré si le fichier est dans le même répertoire puisque que le chemin du fichier n'est pas indiqué.
# Fonction d'ouverture pour ouvrir() le fichier "MonFichier1.txt". # (même répertoire) en mode lecture seule file1 = open("MonFichier1.txt", "r") # on stocke sa référence dans la variable file1 # et "MonFichier2.txt" dans D:\Text em mode lecure et écriture file2 = open(r "D:\Text\MonFichier2.txt", "r+") # et on stocke sa référence dans la variable file2Ici, nous avons créé deux objets : file1 comme objet pour MonFichier1 et file2 comme objet pour MonFichier2.
Puis on peut faire ce que nous voulons avec ces deux variable.
Lecture d'un fichier en python
Il existe trois façons de lire des données à partir d'un fichier texte.Dans ce qui suit objet_fichier est l'objet créé par la fonction open() comme vu ci-dessous.
1. la fonction read() : Retourne les octets lus sous la forme d'une chaîne de caractères. Lit n octets, si aucun n n'est spécifié, lit le fichier entier.
Objet_fichier.read([n])
2. readline() : Lit une ligne du fichier et la renvoie sous la forme d'une chaîne de caractères.pour n spécifié, lit au maximum n octets. Cependant, ne lit pas plus d'une ligne, même si n dépasse la longueur de la ligne.
Objet_fichier.readline([n])
3. readlines() : Lit toutes les lignes et renvoie le contenu de chaque ligne comme une liste d'éléments de type chaîne de caractères.
Fichier_objet.readlines()
Exemple : Programme pour montrer différentes façons de lire les données à partir d'un fichier.
# Création d'un fichier texte oujood.txt file1 = open("oujood.txt", "w") L = ["C'est Delhi ", "C'est Paris ", "C'est London "] # Écriture de données dans le fichier texte # oujood.txt file1.write("Bonjour !\n Bienvenue sur oujood.txt \n" "Ce fichier est destiné à des fins de test." "\n Bonne chance ! et merci \n ") file1.writelines(L) file1.close() # Nous fermons le fichier pour pouvoir # changer de mode d'accès au fichier dans ce qui suit # Re-ouverture du fichier en mode lecture file1 = open("oujood.txt", "r") print("1 La sortie de la fonction Read est :") print(file1.read()) print() # seek(n) met le curseur du fichier à la nième # pour commencer depuis le début n=0. file1.seek(0) print("2 La sortie de la fonction Readline est :") print(file1.readline()) print() file1.seek(0) # Pour montrer la différence entre read et readline print("3 La sortie de la fonction Read(10) est :") print(file1.read(10)) print() file1.seek(0) # fonction readline print("4 La sortie de la fonction Readline(10) est :") print(file1.readline(10)) print() file1.seek(0) # fonction readlines print("5 La sortie de la fonction Readlines est :") print(file1.readlines()) print() file1.close()la sortie sera comme suit:
1 La sortie de la fonction Read est : Bonjour ! Bienvenue sur oujood.txt Ce fichier est destiné à des fins de test. Bonne chance ! et merci C'est Delhi C'est Paris C'est London 2 La sortie de la fonction Readline est : Bonjour ! 3 La sortie de la fonction Read(10) est : Bonjour ! 4 La sortie de la fonction Readline(10) est : Bonjour ! 5 La sortie de la fonction Readlines est : ['Bonjour !\n', 'Bienvenue sur oujood.txt \n', 'Ce fichier est destiné à des fins de test. \n', ' Bonne chance ! et merci \n', " C'est Delhi C'est Paris C'est London "] >>> %Run main.py 1 La sortie de la fonction Read est : Bonjour ! Bienvenue sur oujood.txt Ce fichier est destiné à des fins de test. Bonne chance ! et merci C'est Delhi C'est Paris C'est London 2 La sortie de la fonction Readline est : Bonjour ! 3 La sortie de la fonction Read(10) est : Bonjour ! 4 La sortie de la fonction Readline(10) est : Bonjour ! 5 La sortie de la fonction Readlines est : ['Bonjour !\n', ' Bienvenue sur oujood.txt \n', ' Ce fichier est destiné à des fins de test. \n', ' Bonne chance ! et merci \n', " C'est Delhi C'est Paris C'est London "]
Utilisation de l'instruction with
L'instruction with en Python est utilisée dans la gestion des exceptions pour rendre le code plus propre et beaucoup plus lisible. Elle simplifie la gestion des ressources communes similaires aux flux de fichiers.Contrairement aux implémentations précédentes, il n'est pas nécessaire d'appeler file.close() lors de l'utilisation de l'instruction with. L'instruction with elle-même assure l'acquisition et la libération appropriées des ressources.
La syntaxe est:
with open nom_fichier as file :
Exemple : Programme pour montrer différentes manières de lire des données à partir d'un fichier.L = ["C'est Delhi \n", "C'est London \n", "C'est paris\n"] # Création du fichier texte with open("oujood.txt", "w") as file1: # Ecriture dans le fichier texte file1.write("Bonjour ! \n Bienvenue sur oujood.txt \n" " Ce fichier est destiné à des fins de test.\n" "Bonne chance ! et merci.\n") file1.writelines(L) file1.close() # pour le, changement de mode d'accées with open("oujood.txt", "r") as fichier: # Lecture des données dans le fichier texte print(fichier.read())la sortie sera comme suit:
Bonjour ! Bienvenue sur oujood.txt Ce fichier est destiné à des fins de test. Bonne chance ! et merci. C'est Delhi C'est London C'est paris
Fermeture d'un fichier
La fonction close() ferme le fichier et libère l'espace mémoire acquis par ce fichier. Elle doit être utilisée lorsque le fichier n'est plus nécessaire ou s'il doit être ouvert dans un autre mode d'accès.La syntaxe est la suivante
Objet_fichier.close()
Voir les exemples ci-dessus.Une bonne pratique consiste à toujours fermer le fichier lorsque vous en avez terminé.
Voir le cours suivant pour en savoir plus sur l'écriture dans un fichier