Numérique et Sciences Informatiques > Langages de Programmation > Introduction à un Langage Spécifique (Python par exemple) > Gestion des entrées/sorties
Introduction à la Gestion des Entrées/Sorties en Python
Découvrez comment interagir avec l'utilisateur et les fichiers en Python. Ce guide détaillé, spécialement conçu pour les élèves de lycée, explore les concepts fondamentaux des entrées et sorties, en utilisant des exemples clairs et pratiques pour une compréhension approfondie.
Qu'est-ce que les Entrées/Sorties ?
En programmation, les entrées désignent les données que le programme reçoit, généralement de l'utilisateur (via le clavier) ou d'un fichier. Les sorties, quant à elles, représentent les données que le programme produit et affiche à l'utilisateur (sur l'écran) ou enregistre dans un fichier. La gestion des entrées/sorties (E/S) est cruciale pour permettre à un programme d'interagir avec le monde extérieur et de traiter des informations.
Lecture des Entrées Utilisateur avec input()
La fonction input()
en Python permet de lire une chaîne de caractères saisie par l'utilisateur au clavier. Voici un exemple :
nom = input("Entrez votre nom : ")
print("Bonjour, " + nom + "!")
Dans cet exemple, le programme affiche le message "Entrez votre nom :", attend que l'utilisateur saisisse quelque chose et appuie sur Entrée. La saisie de l'utilisateur est ensuite stockée dans la variable nom
et utilisée pour afficher un message de salutation.
Attention : La fonction input()
renvoie toujours une chaîne de caractères. Si vous avez besoin de lire un nombre, vous devez convertir la chaîne en un type numérique (entier ou flottant) en utilisant les fonctions int()
ou float()
, respectivement. Par exemple :
age = input("Entrez votre âge : ")
age = int(age)
print("Vous aurez " + str(age + 1) + " ans l'année prochaine.")
Sans la conversion en entier avec int(age)
, l'opération d'addition aurait été impossible car Python essaierait de concaténer deux chaînes de caractères.
Écriture des Sorties Utilisateur avec print()
La fonction print()
est utilisée pour afficher des informations à l'utilisateur. Elle peut prendre un ou plusieurs arguments, séparés par des virgules. Par exemple :
prenom = "Alice"
ville = "Paris"
print("Bonjour", prenom, "! Vous habitez à", ville, ".")
Cela affichera : "Bonjour Alice ! Vous habitez à Paris ."
Vous pouvez également utiliser la formatation de chaînes de caractères pour créer des sorties plus claires et structurées. Par exemple avec la méthode .format()
:
print("Bonjour {} ! Vous habitez à {}.".format(prenom, ville))
Ou avec les f-strings (à partir de Python 3.6) :
print(f"Bonjour {prenom} ! Vous habitez à {ville}.")
Les f-strings sont généralement plus lisibles et performantes.
Lecture de Fichiers
Pour lire le contenu d'un fichier, vous devez d'abord l'ouvrir en utilisant la fonction open()
avec le mode 'r' (lecture). Ensuite, vous pouvez utiliser différentes méthodes pour lire le contenu :
Voici un exemple :
read()
: lit tout le contenu du fichier en une seule chaîne de caractères.readline()
: lit une seule ligne du fichier (jusqu'au prochain caractère de saut de ligne '\n').readlines()
: lit toutes les lignes du fichier et les renvoie sous forme de liste de chaînes de caractères.try:
with open("mon_fichier.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)
except FileNotFoundError:
print("Le fichier n'a pas été trouvé.")
Important : Utiliser le bloc with
permet de s'assurer que le fichier est correctement fermé après son utilisation, même en cas d'erreur.
Écriture dans des Fichiers
Pour écrire dans un fichier, vous devez l'ouvrir en utilisant la fonction open()
avec le mode 'w' (écriture) ou 'a' (ajout). Le mode 'w' écrase le contenu existant du fichier, tandis que le mode 'a' ajoute le nouveau contenu à la fin du fichier.
La méthode write()
permet d'écrire une chaîne de caractères dans le fichier.
Voici un exemple :
try:
with open("mon_fichier.txt", "w") as fichier:
fichier.write("Ceci est une ligne de texte.\n")
fichier.write("Ceci est une autre ligne.\n")
except Exception as e:
print(f"Une erreur est survenue : {e}")
Cet exemple écrit deux lignes de texte dans le fichier "mon_fichier.txt". N'oubliez pas d'ajouter le caractère de saut de ligne (\n
) à la fin de chaque ligne si vous voulez que chaque ligne soit affichée sur une nouvelle ligne dans le fichier.
Attention : L'utilisation du bloc try...except
permet de gérer les exceptions potentielles lors de l'ouverture ou de l'écriture du fichier, comme par exemple si le fichier n'existe pas ou si vous n'avez pas les permissions d'écriture.
Gestion des Erreurs
Il est crucial de gérer les erreurs potentielles lors de la gestion des entrées/sorties. Par exemple, un fichier peut ne pas exister, l'utilisateur peut saisir une entrée invalide, ou il peut y avoir des problèmes de permission.
L'utilisation des blocs try...except
permet de capturer et de gérer ces erreurs de manière élégante. Par exemple:
try:
nombre = int(input("Entrez un nombre entier : "))
print("Vous avez entré :", nombre)
except ValueError:
print("Erreur : Veuillez entrer un nombre entier valide.")
Dans cet exemple, si l'utilisateur saisit quelque chose qui n'est pas un nombre entier, l'exception ValueError
est capturée et un message d'erreur est affiché à l'utilisateur.
Ce qu'il faut retenir
input()
lit une chaîne de caractères depuis le clavier. Convertir en nombre avec int()
ou float()
si nécessaire.print()
affiche des informations à l'écran. Utiliser la formatation de chaînes pour un affichage clair.open()
ouvre un fichier en mode 'r' (lecture), 'w' (écriture) ou 'a' (ajout).read()
, readline()
, readlines()
pour lire un fichier.write()
pour écrire dans un fichier.with open(...) as fichier:
pour assurer la fermeture du fichier.try...except
.
FAQ
-
Quelle est la différence entre les modes 'w' et 'a' lors de l'ouverture d'un fichier ?
Le mode 'w' (écriture) écrase le contenu existant du fichier si celui-ci existe déjà. Le mode 'a' (ajout) ajoute le nouveau contenu à la fin du fichier, sans écraser le contenu précédent. -
Comment convertir une chaîne de caractères en un nombre en Python ?
Vous pouvez utiliser les fonctionsint()
pour convertir en un nombre entier etfloat()
pour convertir en un nombre à virgule flottante. N'oubliez pas de gérer les exceptionsValueError
si la chaîne ne peut pas être convertie. -
Pourquoi est-il important de fermer un fichier après l'avoir utilisé ?
Fermer un fichier libère les ressources système associées au fichier et garantit que les données écrites dans le fichier sont correctement enregistrées sur le disque. L'utilisation du blocwith open(...) as fichier:
assure que le fichier est automatiquement fermé, même en cas d'erreur.