1. Les types de modes d'ouverture d'un fichier en écriture
Il existe différents modes d'ouverture de fichiers en Python, qui permettent de définir le comportement de l'ouverture et de la lecture/écriture. Voici une description plus détaillée des modes d'ouverture en écriture :
- "w" : mode écriture (write). Ce mode ouvre le fichier en mode écriture, ce qui signifie que vous pouvez écrire du contenu dans le fichier. Si le fichier n'existe pas, il est créé. Si le fichier existe déjà, son contenu est écrasé. Si vous tentez de lire le contenu du fichier avant de le fermer, vous obtiendrez une erreur. Si le fichier est ouvert en mode écriture, vous pouvez également le lire en utilisant le mode "r+".
- "x" : mode création (exclusive). Ce mode crée un nouveau fichier, mais uniquement s'il n'existe pas déjà. Si le fichier existe déjà, une erreur est levée.
- "a" : mode ajout (append). Ce mode ouvre le fichier en mode écriture, mais plutôt que d'écraser le contenu existant, il ajoute le nouveau contenu à la fin du fichier. Si le fichier n'existe pas, il est créé.
- "w+" : mode lecture et écriture. Ce mode ouvre le fichier en mode écriture et lecture. Vous pouvez donc lire le contenu existant du fichier et en écrire un nouveau. Si le fichier n'existe pas, il est créé.
- "a+" : mode ajout et lecture. Ce mode ouvre le fichier en mode ajout et lecture. Vous pouvez donc ajouter du contenu à la fin du fichier et lire le contenu existant. Si le fichier n'existe pas, il est créé.
Lorsque vous avez fini de travailler avec le fichier, n'oubliez pas de le fermer en utilisant la méthode close(), afin de libérer les ressources utilisées et de vous assurer que les modifications ont bien été écrites sur le disque.
2. Ouverture et écriture dans un fichier existant
Pour écrire dans un fichier existant, vous devez ajouter l'un des paramètres à la fonction open():
- "a" : Append - sera ajouté à la fin du fichier
- "w" : Write - écrasera tout contenu existant
- "r+": ecture et écriture sans écraser le contenu existant
On dira alors que le fichier est ouvert en mode écriture (write mode) Pour écrire dans fichier ouvert en mode écriture, on utilise la fonction write().
La syntaxe est:
1 |
file.write(contenu) |
Exemple (ouvrir un fichier et y ajouter du contenu)
1 2 3 4 5 6 7 |
# ouverture avec conservation du contenu existant f = open ("myFile.txt", "a") # cette commande s'applique à un fichier existant f.write ("Voici un contenu qui va s'ajouter au fichier sans écraser le contenu!") f.close () # ouvrir et lire le fichier après l’ajout: f = open ("myFile.txt", "r") print (f.read()) |
Exemple (ouvrir le fichier "myFile.txt" avec écrasement du contenu existant)
1 2 3 4 5 6 7 |
# ouverture avec écrasement du contenu existant f = open ("myFile.txt", "w") f.write ("Désolé ! J'ai supprimé le contenu!") f.close() # ouvrir et lire le fichier après l’ajout: f = open ("myFile.txt", "r") print (f.read()) |
3. Ouverture en mode création des fichiers
Pour créer un nouveau fichier en Python, on utilise la méthode open(), avec l'un les paramètres suivants:
- "x" : ce mode d'ouverture, crée un fichier s'il n'existe pas et renvoie une erreur si le fichier existe
- "a" : Append - créera un fichier si le fichier spécifié n'existe pas
- "w" : Write - créera un fichier si le fichier spécifié n'existe pas et si le fichier existe, il sera écrasé
- "r+" : ouverture en mode lecture et écriture. Si le fichier n'existe pas, une erreur est renvoyée.
Exemple (Création d'un fichier nommé "myFile.txt")
1 |
f = open ("myFile.txt", "x") # renvoie une erreur si le fichier existe. |
4. Ajout de lignes à un fichier avec la méthode writelines()
La méthode writelines(), permet d'ajouter une liste de lignes à un fichier ouvert en mode écriture
Exemple (ajouter une liste des lignes à un fichier)
1 2 3 4 5 6 7 8 9 10 11 |
f = open ("myFile.txt", "r+") l = ["ligne1\n","ligne2\n,"ligne3\n"] f.writelines(l) print(f.read()) f.close() """ output: ligne1 ligne2 ligne3 """ |
5. Récapitulatif des méthodes Python associées à un objet fichier
- file.close() : ferme un fichier ouvert.
- file.fileno() : retourne un descripteur entier d'un fichier.
- file.flush() : vide le tampon interne.
- file.isatty() : renvoie true si le fichier est connecté à un périphérique tty.
- file.next() : retourne la ligne suivante du fichier.
- fichier.read(n) : lit les n premiers caractères du fichier.
- file.readline() : lit une seule ligne dans une chaine ou un fichier.
- file.readlines() : lit et renvoie la liste de toutes les lignes du fichier.
- file.seek( ) : définit la position actuelle du fichier.
- file.seekable() : vérifie si le fichier prend en charge l'accès aléatoire. Renvoie true si oui.
- file.tell() : retourne la position actuelle dans le fichier.
- file.truncate(n) : tronque la taille du fichier. Si n est fourni, le fichier est tronqué à n octets, sinon tronqué à l'emplacement actuel.
- file.write(str) : écrit la chaine str dans le fichier.
- file.writelines(séquence) : écrit une séquence de lignes ou de chaines dans le fichier.
Younes Derfoufi
CRMEF OUJDA