Présentation
La gestion des fichiers fait partie intégrante de la programmation. La gestion des fichiers dans Python est simplifiée grâce à des méthodes intégrées, qui incluent la création, l'ouverture et la fermeture de fichiers.
Lorsque les fichiers sont ouverts, Python permet en outre d'effectuer diverses opérations sur les fichiers, telles que la lecture, l'écriture et l'ajout d'informations.
Cet article vous apprend à travailler avec des fichiers en Python.

Prérequis
- Python 3 installé et configuré.
- Un IDE ou un éditeur de code pour écrire du code.
- Accès à un terminal pour exécuter le code (ou exécuter directement dans un IDE).
- Un fichier texte pour les exemples.
Ouverture de fichiers en Python
Le open()
La méthode Python est la principale fonction de gestion des fichiers. La syntaxe de base est :
file_object = open('file_name', 'mode')
Le open()
La fonction prend deux paramètres élémentaires pour la gestion des fichiers :
1. Le file_name
inclut l'extension de fichier et suppose que le fichier se trouve dans le répertoire de travail actuel. Si l'emplacement du fichier est ailleurs, indiquez le chemin absolu ou relatif.
2. Le mode mode
est un paramètre facultatif qui définit la méthode d'ouverture du fichier. Le tableau ci-dessous présente les différentes options possibles :
Mode | Description |
---|---|
'r' | Lit à partir d'un fichier et renvoie une erreur si le fichier n'existe pas (par défaut ). |
'w' | Écrit dans un fichier et crée le fichier s'il n'existe pas ou écrase un fichier existant. |
'x' | Création exclusive qui échoue si le fichier existe déjà. |
'a' | Ajoute à un fichier et crée le fichier s'il n'existe pas ou écrase un fichier existant. |
'b' | Mode binaire. Utilisez ce mode pour les fichiers non textuels, tels que les images. |
't' | Mode texte. Utiliser uniquement pour les fichiers texte (par défaut ). |
'+' | Active les méthodes de lecture et d'écriture. |
Le mode doit avoir exactement un create(x
)/read(r
)/write(w
)/append(a
) méthode, au plus un +
. Omettre le mode par défaut est 'rt'
pour lire des fichiers texte.
Vous trouverez ci-dessous un tableau décrivant le comportement de chacun des modes lorsqu'il est invoqué.
Comportement | Modes |
---|---|
Lire | r , r+ , w+ , a+ , x+ |
Écrire | r+ , w , w+ , a , a+ , x+ |
Créer | w , w+ , a , a+ , x , x+ |
Début de la position du pointeur | r , r+ , w , w+ , x , x+ |
Fin de la position du pointeur | a , a+ |
Tronquer (effacer le contenu) | w , w+ |
Doit exister | r , r+ |
Ne doit pas exister | x , x+ |
Mode lecture
Le mode lecture de Python ouvre un fichier existant pour la lecture, positionnant le pointeur au début du fichier.
Pour lire un fichier texte en Python, chargez le fichier en utilisant open()
fonction :
f = open("<file name>")
Le mode par défaut est de lire du texte ('rt'
). Par conséquent, la méthode suivante est équivalente à la méthode par défaut :
f = open("<file name>", "rt")
Pour lire des fichiers en mode binaire, utilisez :
f = open("<file name>", "rb")
Ajouter +
pour ouvrir un fichier en mode lecture et écriture :
f = open("<file name>", "r+") # Textual read and write
f = open("<file name>", "rt+") # Same as above
f = open("<file name>", "rb+") # Binary read and write
Dans tous les cas, la fonction renvoie un objet fichier et les caractéristiques dépendent du mode choisi.
Mode d'écriture
Le mode écriture crée un fichier pour écrire du contenu et place le pointeur au début. Si le fichier existe, écrire tronque (efface) toute information existante.
Avertissement : Le mode écriture supprime le contenu existant immédiatement . Vérifiez si un fichier existe avant d'écraser des informations par accident.
Pour ouvrir un fichier pour écrire des informations, utilisez :
f = open("<file name>", "w")
Le mode par défaut est texte, donc la ligne suivante est équivalente à la valeur par défaut :
f = open("<file name>", "wt")
Pour écrire en mode binaire, ouvrez le fichier avec :
f = open("<file name>", "wb")
Ajouter +
pour autoriser la lecture du fichier :
f = open("<file name>", "w+") # Textual write and read
f = open("<file name>", "wt+") # Same as above
f = open("<file name>", "wb+") # Binary write and read
Le open()
renvoie un objet fichier dont les détails dépendent des modes choisis.
Mode d'ajout
Le mode Append ajoute des informations à un fichier existant, en plaçant le pointeur à la fin. Si un fichier n'existe pas, le mode ajout crée le fichier.
Utilisez l'une des lignes suivantes pour ouvrir un fichier en mode ajout :
f = open("<file name>", "a") # Text append
f = open("<file name>", "at") # Same as above
f = open("<file name>", "ab") # Binary append
Ajoutez le +
signer pour inclure la fonctionnalité de lecture.
Mode Créer
Le mode Création (également appelé création exclusive) crée un fichier uniquement s'il n'existe pas, en positionnant le pointeur au début du fichier.
Utilisez l'une des lignes suivantes pour ouvrir un fichier en mode création :
f = open("<file name>", "x") # Text create
f = open("<file name>", "xt") # Same as above
f = open("<file name>", "xb") # Binary create
Ajoutez le +
signe au mode inclure la fonctionnalité de lecture à l'une des lignes ci-dessus.
Lire des fichiers en Python
Après avoir importé un fichier dans un objet, Python propose de nombreuses méthodes pour lire le contenu.
Utilisez le read()
méthode sur l'objet fichier et imprimez le résultat. Par exemple :
f = open("file.txt")
print(f.read(),end="")

Le code imprime le contenu du fichier texte.
Lire des parties du fichier
Fournissez un numéro au read()
fonction pour lire uniquement le nombre de caractères spécifié :
f = open("file.txt")
print(f.read(5))

La sortie imprime les cinq premiers caractères du fichier.
Sinon, utilisez le readline()
méthode pour n'imprimer que la première ligne du fichier :
f = open("file.txt")
print(f.readline())

Ajouter un entier au readline()
fonction pour imprimer le nombre de caractères spécifié sans dépasser la première ligne.
Lire les lignes
Pour lire des lignes et parcourir le contenu d'un fichier, utilisez un for
boucle :
f = open("file.txt")
for line in f:
print(line, end="")

Vous pouvez également utiliser le readlines()
méthode sur l'objet fichier :
f = open("file.txt")
print(f.readlines())

La fonction renvoie la liste des lignes du flux de fichiers.
Ajouter un entier au readlines()
fonction pour contrôler le nombre de lignes. Par exemple :
f = open("file.txt")
print(f.readlines(15))

L'entier représente le numéro du caractère et la fonction renvoie la ligne où se termine le caractère avec les lignes précédentes.
Fermer les fichiers
Un fichier reste ouvert jusqu'à l'invocation de close()
une fonction. Il est recommandé de fermer les fichiers qui ne sont plus utilisés pour éviter un comportement imprévisible et des fichiers corrompus.
Pour fermer un fichier, exécutez le close()
méthode sur l'objet fichier :
f.close()
Une autre façon de s'assurer qu'un fichier se ferme est d'utiliser le with
déclaration. Par exemple :
with open("<file name>"):
file_contents = f.read()
# Additional code here
Le with
l'instruction ferme automatiquement le fichier.
Suppression de fichiers en Python
La suppression de fichiers dans Python nécessite d'établir une communication avec le système d'exploitation. Importer le os
bibliothèque et supprimez un fichier avec ce qui suit :
import os
os.remove("file.txt")

Le fichier n'est plus disponible. Si le fichier n'existe pas, Python renvoie une erreur.
Méthodes de fichier Python
Python offre diverses autres fonctions lorsque vous travaillez avec des objets de fichier. Vous trouverez ci-dessous un tableau qui décrit tous les processus disponibles et ce qu'ils font.
Méthode | Description |
---|---|
close() | Vide et ferme l'objet fichier. |
detach() | Sépare le tampon du flux de texte et renvoie le tampon. |
fileno() | Renvoie le descripteur du fichier s'il est disponible. |
flush() | Vide le tampon d'écriture. Non disponible pour les objets en lecture seule. |
isatty() | Vérifie si un flux de fichier est interactif. |
read(<int>) | Lire <int> nombre de caractères maximum. |
readable() | Vérifie si un objet est lisible. |
readline(<int>) | Lit depuis l'objet jusqu'à une nouvelle ligne ou à la fin du fichier. |
readlines(<int>) | Renvoie une liste de lignes à partir de l'objet file, où <int> est le nombre de caractères approximatif. |
seek(<offset>, <position>) | Change la position du pointeur en <offset> par rapport au <position> . |
seekable() | Vérifie si l'objet fichier prend en charge l'accès aléatoire. |
tell() | Imprime la position actuelle du flux. |
truncate(<byte>) | Redimensionne le flux de fichiers à <bytes> (ou la position actuelle si elle n'est pas indiquée) et renvoie la taille. |
write(<string>) | Écrit <string> à l'objet fichier et renvoie le nombre écrit de caractères. |
writable() | Vérifie si l'objet fichier autorise l'écriture. |
writelines(<list>) | Écrit un <list> de lignes au flux sans séparateur de ligne. |