Gérer les Entrées et les Sorties en Python

PythonBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez les concepts fondamentaux de la gestion des entrées et des sorties (Input/Output - I/O) en Python. Nous explorerons comment afficher des informations sur la console en utilisant la fonction print() et comment obtenir des données de l'utilisateur depuis le clavier.

De plus, vous acquerrez une expérience pratique dans l'écriture de données dans des fichiers et leur lecture ultérieure. Ce sont des compétences essentielles pour tout programme Python qui doit interagir avec les utilisateurs ou manipuler des données stockées dans des fichiers.

Afficher des Chaînes de Caractères sur la Console

En Python, la fonction principale pour afficher des sorties sur la console est print(). Son utilisation est simple. Dans cette étape, vous vous entraînerez à utiliser print() pour afficher du texte.

Tout d'abord, localisez le fichier output.py dans l'explorateur de fichiers sur le côté gauche du WebIDE. Double-cliquez dessus pour l'ouvrir dans l'éditeur.

Ajoutez les lignes de code suivantes à output.py :

print("Hello, LabEx!")
print("This is a Python course.")

Enregistrez le fichier (vous pouvez utiliser le raccourci Ctrl+S). Pour exécuter ce script, ouvrez le terminal en bas du WebIDE et exécutez la commande suivante. Le terminal devrait déjà se trouver dans le répertoire ~/project.

python ~/project/output.py

Vous verrez la sortie suivante dans le terminal :

Hello, LabEx!
This is a Python course.

La fonction print() peut également accepter plusieurs arguments séparés par des virgules. Par défaut, elle les affiche avec un seul espace entre eux.

Modifiez le fichier output.py, en remplaçant son contenu par la ligne suivante :

print("Apple", "Banana", "Orange", "Grape", "Watermelon")

Enregistrez le fichier et exécutez-le à nouveau depuis le terminal :

python ~/project/output.py

La sortie sera :

Apple Banana Orange Grape Watermelon

Vous pouvez personnaliser le séparateur en utilisant le paramètre sep. La valeur par défaut de sep est un espace (' '). Changeons-le pour une barre verticale.

Modifiez output.py une fois de plus :

print("Apple", "Banana", "Orange", "Grape", "Watermelon", sep=" | ")

Enregistrez et exécutez le script :

python ~/project/output.py

La sortie utilise maintenant votre séparateur personnalisé :

Apple | Banana | Orange | Grape | Watermelon

Ceci démontre comment vous pouvez contrôler le format de votre sortie console.

Obtenir l'Entrée Utilisateur depuis le Clavier

Jusqu'à présent, nos scripts n'ont fait qu'afficher du contenu prédéfini. Pour rendre les programmes plus interactifs, nous devons obtenir des données de l'utilisateur. En Python, vous pouvez le faire avec la fonction input().

Trouvez et ouvrez le fichier interactive.py dans l'explorateur de fichiers du WebIDE. Ajoutez le code suivant :

name = input("Please enter your name: ")
print("Your name is:", name)

La fonction input() affiche une invite (le texte que vous lui passez) à l'utilisateur et attend qu'il saisisse quelque chose et appuie sur Entrée. Le texte saisi par l'utilisateur est ensuite retourné sous forme de chaîne de caractères (string), que nous stockons dans la variable name.

Enregistrez le fichier et exécutez le script depuis le terminal :

python ~/project/interactive.py

Le script se mettra en pause et affichera l'invite. Saisissez un nom et appuyez sur Entrée.

Please enter your name: Labex User
Your name is: Labex User

Le script capture votre entrée et l'utilise dans l'instruction print() finale. C'est une technique fondamentale pour créer des applications interactives en ligne de commande.

Écrire des Données dans un Fichier

La lecture et l'écriture dans des fichiers sont des opérations d'E/S (Entrée/Sortie) courantes et essentielles. Python fournit la fonction intégrée open() pour gérer les fichiers.

La syntaxe de base est open(filename, mode). L'argument mode spécifie comment le fichier sera utilisé. Les modes courants incluent :

  • 'w' : Mode écriture (Write). Crée un nouveau fichier pour l'écriture. Si le fichier existe déjà, son contenu est effacé.
  • 'r' : Mode lecture (Read). Ouvre un fichier existant pour la lecture. C'est le mode par défaut.
  • 'a' : Mode ajout (Append). Ouvre un fichier pour ajouter du contenu à sa fin. Si le fichier n'existe pas, il est créé.

La manière recommandée de travailler avec des fichiers est d'utiliser l'instruction with, qui ferme automatiquement le fichier pour vous, même en cas d'erreurs.

Pratiquons en écrivant du texte dans un fichier. Ouvrez le fichier file_io.py dans l'éditeur du WebIDE et ajoutez le code suivant :

with open("book.txt", "w") as f:
    f.write("Bed before bright moonlight,\n")
    f.write("Suspected to be frost on the ground.\n")
    f.write("Head held high, gazing at the bright moon,\n")
    f.write("Head bowed low, thinking of my homeland.")

Ce code ouvre un fichier nommé book.txt en mode écriture ('w'). La méthode f.write() écrit des chaînes de caractères dans le fichier. Le caractère \n représente un saut de ligne, de sorte que chaque appel à write se termine sur une nouvelle ligne.

Enregistrez le fichier et exécutez le script depuis le terminal :

python ~/project/file_io.py

Cette commande ne produira aucune sortie sur la console, mais elle créera un nouveau fichier nommé book.txt dans votre répertoire ~/project. Vous pouvez visualiser son contenu en utilisant la commande cat dans le terminal :

cat ~/project/book.txt

La sortie devrait être le texte que vous avez écrit dans le fichier :

Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.

L'utilisation de l'instruction with est une bonne pratique car elle garantit que le fichier est correctement fermé après l'exécution du bloc de code.

Lire des Données à Partir d'un Fichier

Maintenant que nous avons créé et écrit dans book.txt, apprenons à lire son contenu. Python offre plusieurs méthodes pour lire des fichiers. Nous allons explorer les plus courantes.

Nous allons continuer à travailler avec le script file_io.py. Vous allez ajouter du code pour lire le fichier que vous venez de créer.

La Méthode read()

La méthode read() lit l'intégralité du contenu d'un fichier et le retourne sous forme d'une seule chaîne de caractères (string).

Ajoutez le code suivant à la fin de votre script file_io.py. Cela fera en sorte que le script écrive d'abord le fichier, puis le relise et affiche son contenu.

## Le code d'écriture de l'étape précédente doit être au-dessus de ceci

print("\n--- Lecture du fichier entier avec read() ---")
with open("book.txt", "r") as f:
    content = f.read()
    print(content)

Enregistrez le fichier et exécutez-le depuis le terminal :

python ~/project/file_io.py

La sortie inclura désormais le contenu de book.txt affiché sur la console :

--- Reading entire file with read() ---
Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.

Itérer sur les Lignes

Une manière plus efficace en termes de mémoire pour lire un fichier, surtout s'il est volumineux, est de le traiter ligne par ligne. Vous pouvez le faire en itérant directement sur l'objet fichier dans une boucle for.

Ajoutez maintenant ce bloc de code suivant à file_io.py :

print("\n--- Lecture du fichier ligne par ligne ---")
with open("book.txt", "r") as f:
    for line in f:
        print(line, end='')

Ici, end='' dans la fonction print() l'empêche d'ajouter un saut de ligne supplémentaire, car chaque line lue depuis le fichier se termine déjà par un caractère de nouvelle ligne (\n).

Enregistrez et exécutez à nouveau le script :

python ~/project/file_io.py

La sortie pour cette section sera identique à celle de la méthode read(), mais le processus sous-jacent est différent, lisant une ligne à la fois.

La Méthode readlines()

La méthode readlines() lit toutes les lignes d'un fichier et les retourne sous forme de liste de chaînes de caractères.

Enfin, ajoutez ce dernier bloc de code à file_io.py :

print("\n\n--- Lecture de toutes les lignes avec readlines() ---")
with open("book.txt", "r") as f:
    all_lines = f.readlines()
    print(all_lines)

Enregistrez et exécutez le script une dernière fois :

python ~/project/file_io.py

La sortie pour cette section sera une liste Python, où chaque élément est une chaîne de caractères représentant une ligne du fichier :

--- Reading all lines with readlines() ---
['Bed before bright moonlight,\n', 'Suspected to be frost on the ground.\n', 'Head held high, gazing at the bright moon,\n', 'Head bowed low, thinking of my homeland.']

Vous avez maintenant pratiqué les méthodes fondamentales pour écrire dans des fichiers et lire à partir de fichiers en Python.

Résumé

Dans ce laboratoire, vous avez appris les techniques fondamentales pour gérer les entrées et les sorties (Input/Output - E/S) en Python. Vous avez commencé par utiliser la fonction print() pour afficher du texte formaté sur la console, y compris comment personnaliser les séparateurs. Vous êtes ensuite passé à l'interactivité de vos programmes en capturant l'entrée utilisateur depuis le clavier avec la fonction input().

Enfin, vous avez exploré les opérations d'E/S de fichiers. Vous avez appris à écrire des données dans un fichier en utilisant open() en mode écriture (write mode) avec l'instruction recommandée with. Vous vous êtes également exercé à lire des données depuis un fichier en utilisant diverses méthodes, notamment read(), l'itération ligne par ligne, et readlines(). Ces compétences sont fondamentales pour construire des applications Python plus complexes qui interagissent avec les utilisateurs et les données.