Comment lire les entrées de stdin en Python
-
Utilisez
fileinput.input()
pour lire à partir destdin
en Python -
Utilisez
sys.stdin
pour lire à partir destdin
en Python - Conclusion
Ce tutoriel traite des méthodes pour lire les entrées de stdin
en Python. Cela peut être soit la lecture directe depuis la console, soit la lecture depuis le nom de fichier spécifié dans la console.
Utilisez fileinput.input()
pour lire à partir de stdin
en Python
Nous pouvons utiliser le module fileinput
pour lire à partir de stdin
en Python. Le module [fileinput.input()
lit toutes les lignes des noms de fichiers d’entrée spécifiés dans les arguments de la ligne de commande. Si aucun argument n’est spécifié, il lira l’entrée standard fournie.
L’exemple ci-dessous illustre la lecture à partir du nom de fichier d’entrée spécifié.
Nous utiliserons le fichier sample.txt
ci-dessous.
Hello
Line1
Line2
Sous le script read.py
.
import fileinput
for line in fileinput.input():
print(line.rstrip())
Nous l’exécutons comme ceci:
python read.py "sample.txt"
Production:
Hello
Line1
Line2
L’exemple ci-dessous illustre la lecture à partir de l’entrée standard.
import fileinput
for line in fileinput.input():
print("Output:", line.rstrip())
L’exécution et la sortie sont montrées ci-dessous.
python read.py
Line 1
Output: Line 1
Line 2
Output: Line2
^Z
Nous pouvons également sauvegarder les données à traiter ultérieurement de cette manière:
import fileinput
data = []
for line in fileinput.input():
data.append(line.rstrip())
Notez que nous utilisons line.rstrip()
. Cela permet de supprimer la nouvelle ligne qui suit.
En tapant y
, on supprime toutes les variables.
Utilisez sys.stdin
pour lire à partir de stdin
en Python
Une autre approche consiste à utiliser sys.stdin
pour lire à partir de stdin
en Python. L’exemple ci-dessous illustre la lecture des données de stdin
ligne par ligne:
import sys
for line in sys.stdin:
print("Output:", line.rstrip())
L’exécution et la sortie sont montrées ci-dessous.
python read.py
Line 1
Output: Line 1
Line 2
Output: Line2
^Z
Nous pouvons également lire toutes les données de stdin
en une seule fois au lieu de les lire ligne par ligne.
L’exemple ci-dessous illustre cela:
import sys
data = sys.stdin.readlines()
data = [line.rstrip() for line in data]
Notez que nous utilisons line.rstrip()
. C’est pour supprimer le saut de ligne qui suit.
Conclusion
Nous avons discuté de 2 méthodes, fileinput.input()
et sys.stdin
, pour lire l’entrée stdin
en Python. fileinput.input()
peut lire les données du nom de fichier spécifié dans l’argument de la ligne de commande ou de l’entrée standard, alors que sys.stdin
ne peut lire que les données de l’entrée standard.