Recherche de site Web

Comment lire depuis stdin en Python


Il existe trois manières de lire des données depuis stdin en Python.

  1. Veuillez fournir les phrases à traduire.
  2. fonction intégrée input()
  3. 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

Exemple de stdin en Python

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 :

Python input() Lire de stdin

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 :

Python fileinput.input() lit l'entrée standard