Détails
Comment lire depuis stdin ?
J'essaie de relever certains des défis du [code golf][1], mais ils nécessitent tous que l'entrée soit prise dans stdin
. Comment puis-je obtenir cela en Python ?
1378
3
Vous pouvez utiliser le module [
fileinput
][1] :[
fileinput
][1] parcourra en boucle toutes les lignes de l'entrée spécifiée par les noms de fichiers donnés en arguments de ligne de commande, ou l'entrée standard si aucun argument n'est fourni.Note :
line
contiendra un saut de ligne ; pour le supprimer, utilisezline.rstrip()
.[1] : http://docs.python.org/library/fileinput.html
Il y a plusieurs façons de le faire.
[
sys.stdin
][1] est un objet de type fichier sur lequel vous pouvez appeler les fonctionsread
oureadlines
si vous voulez tout lire ou si vous voulez tout lire et le couper automatiquement par une nouvelle ligne. (Vous devezimporter sys
pour que cela fonctionne).Si vous voulez solliciter l'utilisateur pour une entrée, vous pouvez utiliser
raw_input
dans Python 2.X, et justeinput
dans Python 3.Si vous souhaitez simplement lire les options de la ligne de commande, vous pouvez y accéder via la liste [sys.argv][2].
Vous trouverez probablement [cet article du Wikibook sur les E/S en Python][3] une référence utile.
[1] : http://docs.python.org/library/sys.html#sys.stdin [2] : http://docs.python.org/library/sys.html#sys.argv [3] : http://en.wikibooks.org/wiki/Python_Programming/Input_and_output
Voici un extrait de [Learning Python][1] :
Sous Unix, vous pouvez le tester en faisant quelque chose comme :
Sous Windows ou DOS, vous feriez.. :
[1] : http://web.archive.org/web/20140928083217/http://oreilly.com/catalog/lpython/chapter/ch09.html#16308