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 :

  • 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.
Voici un exemple : 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

  • Les entrées sont les données reçues par le programme (utilisateur, fichiers).
  • Les sorties sont les données produites par le programme (écran, fichiers).
  • 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).
  • Utiliser read(), readline(), readlines() pour lire un fichier.
  • Utiliser write() pour écrire dans un fichier.
  • Utiliser with open(...) as fichier: pour assurer la fermeture du fichier.
  • Gérer les erreurs avec 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 fonctions int() pour convertir en un nombre entier et float() pour convertir en un nombre à virgule flottante. N'oubliez pas de gérer les exceptions ValueError 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 bloc with open(...) as fichier: assure que le fichier est automatiquement fermé, même en cas d'erreur.