1791 votes

Comment voulez-vous lire depuis l'entrée standard stdin en Python?

Je suis en train de faire une partie du code de golf de défis, mais ils nécessitent tous l'entrée pour être pris à partir de stdin. Comment puis-je obtenir qu'en Python?

1141voto

u0b34a0f6ae Points 14874

C'est quelque chose que j'ai appris de Débordement de Pile:

import fileinput

for line in fileinput.input():
    pass

fileinput , passe en boucle sur toutes les lignes en entrée spécifié que les noms de fichier donné en argument de ligne de commande, ou l'entrée standard si aucun argument n'est fourni.

846voto

Mark Rushakoff Points 97350

Il ya quelques façons de le faire.

sys.stdin est un fichier-comme l'objet sur lequel vous pouvez appeler des fonctions read ou readlines si vous voulez tout lire ou vous voulez tout lire et de le diviser par le retour à la ligne automatique.

Si vous voulez invite l'utilisateur pour l'entrée, vous pouvez utiliser raw_input en Python 2.X, et juste input en Python 3.

Si vous voulez juste lire les options de ligne de commande, vous pouvez y accéder via le sys.argv liste.

Vous trouverez probablement ce Wikibook article sur les I/O en Python à être une référence utile.

595voto

user303110 Points 1226
import sys

for line in sys.stdin:
    print line

284voto

Pat Notz Points 46841

Python a également intégré dans les fonctions de, input() et raw_input(). Voir la documentation Python en vertu de Fonctions intégrées.

Par exemple,

name = raw_input("Enter your name: ")   # Python 2.x

ou

name = input("Enter your name: ")   # Python 3

251voto

Eugene Yokota Points 43213

Voici de l'Apprentissage de Python:

import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."

Sur Unix, vous pouvez le tester en faisant quelque chose comme:

% cat countlines.py | python countlines.py 
Counted 3 lines.

Sur le DOS ou Windows, vous souhaitez faire:

C:\> type countlines.py | python countlines.py 
Counted 3 lines.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X