Comment lire depuis stdin en Python
Il existe trois manières de lire des données depuis stdin en Python.
- Veuillez fournir les phrases à traduire.
- fonction intégrée input()
- fonction fileinput.input()
1. Utiliser sys.stdin pour lire à partir de l'entrée standard
Le module système Python stdin est utilisé par l’interpréteur pour la saisie standard. En interne, il appelle la fonction input(). À la fin, la chaîne d’entrée est complétée par un caractère de saut de ligne (\n). Ainsi, vous pouvez utiliser la fonction rstrip() pour le supprimer. Voici un programme simple pour lire les messages de l’utilisateur à partir de l’entrée standard et les traiter. Le programme se terminera lorsque l’utilisateur entrera le message « Quitter ».
import sys
for line in sys.stdin:
if 'Exit' == line.rstrip():
break
print(f'Processing Message from sys.stdin *****{line}*****')
print("Done")
Sortie :
Hi
Processing Message from sys.stdin *****Hi
*****
Hello
Processing Message from sys.stdin *****Hello
*****
Exit
Done
Remarquez l'utilisation de rstrip() pour supprimer le caractère de nouvelle ligne final afin que nous puissions vérifier si l'utilisateur a saisi le message “Exit ” ou non.
2. Utiliser la fonction input() pour lire les données d'entrée standard
Nous pouvons également utiliser la fonction input() de Python pour lire les données d'entrée standard. Nous pouvons également afficher un message à l'utilisateur. Voici un exemple simple pour lire et traiter le message d'entrée standard dans une boucle infinie, à moins que l'utilisateur ne saisisse le message Exit.
while True:
data = input("Please enter the message:\n")
if 'Exit' == data:
break
print(f'Processing Message from input() *****{data}*****')
print("Done")
Sortie :
La fonction input() n'ajoute pas de caractère de nouvelle ligne au message de l'utilisateur.
3. Lecture de l'entrée standard en utilisant le module fileinput
Nous pouvons également utiliser la fonction fileinput.input() pour lire à partir de l'entrée standard. Le module fileinput fournit des fonctions utilitaires pour parcourir l'entrée standard ou une liste de fichiers. Lorsque nous ne fournissons aucun argument à la fonction input(), elle lit les arguments de l'entrée standard. Cette fonction fonctionne de la même manière que sys.stdin et ajoute un caractère de nouvelle ligne à la fin des données saisies par l'utilisateur.
import fileinput
for fileinput_line in fileinput.input():
if 'Exit' == fileinput_line.rstrip():
break
print(f'Processing Message from fileinput.input() *****{fileinput_line}*****')
print("Done")
Sortie :



