E/S de fichier Python : lire et écrire des fichiers en toute sécurité

Apprenez à lire et écrire des fichiers en Python. Maîtrisez open(), read(), write() et les gestionnaires de contexte pour gérer les opérations sur les fichiers en toute sécurité sans fuite de ressources.

Essayez dans l'éditeur

Aperçu

Les entrées/sorties de fichiers (E/S) sont une fonctionnalité fondamentale qui permet aux programmes Python d'interagir avec le stockage persistant d'un ordinateur. Que vous construisiez un simple enregistreur, lisiez des fichiers de configuration ou traitiez des tableaux de données volumineux, votre programme a besoin d'un moyen fiable pour ouvrir, lire, écrire et fermer des fichiers sur le disque. Python fournit des fonctions claires et intégrées pour rendre l'interaction du système de fichiers simple et multiplateforme.

Le principal outil d'accès aux fichiers en Python est la fonction intégrée « open() ». Cette fonction accepte un chemin de fichier et une chaîne de mode. Le mode détermine comment on accède au fichier : "r" pour la lecture, "w" pour l'écriture (qui écrase le fichier), "a" pour ajouter du contenu à la fin et "b" pour le mode binaire (utile pour les images ou les données sérialisées). Surtout, chaque fois que vous ouvrez un fichier, il consomme un handle du système d’exploitation. Si vous ne parvenez pas à fermer le fichier, vous pouvez provoquer des fuites de mémoire ou des problèmes de verrouillage de fichier.

Pour garantir que les fichiers sont toujours correctement fermés, les développeurs Python utilisent l'instruction « with », qui implémente un gestionnaire de contexte. Lors de l'utilisation de « with open(...) as file: », Python ferme automatiquement le descripteur de fichier une fois le bloc de code terminé, même si une exception inattendue se produit à l'intérieur. La lecture des données peut être effectuée ligne par ligne en utilisant `for line in file:` ou en une seule fois via `.read()`, `.readline()` ou `.readlines()`. L'écriture du texte est gérée via `.write()` ou `.writelines()`, permettant des opérations de fichiers fluides, sûres et efficaces.

Sortie de code et d'exécution

Écrire un message d'accueil dans un fichier texte temporaire et le relire ligne par ligne à l'aide de gestionnaires de contexte sécurisés.

file_operations.py
Essayez dans l'éditeur
filename = "sample.txt"

# Writing to a file
with open(filename, "w") as file:
    file.write("Hello, Python coder!\n")
    file.write("This is a line in a file.\n")
    file.write("File I/O is simple.\n")

print("File written successfully.\n--- Reading File ---")

# Reading from a file line by line
with open(filename, "r") as file:
    for index, line in enumerate(file, 1):
        print(f"Line {index}: {line.strip()}")
Sortie terminale
File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.

Mise en œuvre étape par étape

  • Erreurs de journalisation et sortie du programme
  • Lecture des fichiers de configuration (par exemple, .env ou config.txt)
  • Enregistrement des rapports utilisateur ou des résumés analytiques exportés

Foire aux questions

Quelle est la différence entre les modes écriture et ajout ?

Le mode écriture (« w ») tronque le fichier à une longueur nulle, supprimant tout contenu existant avant l'écriture. Le mode Ajout (« a ») place le curseur à la fin, ajoutant un nouveau texte sans supprimer le contenu existant.

Pourquoi devrais-je utiliser l'instruction with ?

L'instruction with agit comme un gestionnaire de contexte, garantissant la fermeture automatique des fichiers, ce qui évite les fuites de mémoire et les erreurs de verrouillage des fichiers.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.