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?
Réponses
Trop de publicités?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.
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.
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
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.