Ik'probeer een aantal van de code golf uitdagingen te doen, maar ze vereisen allemaal dat de invoer uit stdin
wordt gehaald. Hoe krijg ik dat in Python?
Je zou de fileinput
module kunnen gebruiken:
import fileinput
for line in fileinput.input():
pass
fileinput
zal door alle regels in de invoer lopen die zijn opgegeven als bestandsnamen in command-line argumenten, of de standaard invoer als er geen argumenten zijn opgegeven.
Opmerking: line
zal een nieuwe regel achteraan bevatten; om deze te verwijderen gebruikt u line.rstrip()
Er zijn een paar manieren om het te doen.
sys.stdin
]1 is een file-achtig object waarop je de functies read
of readlines
kunt aanroepen als je alles wilt lezen of als je alles wilt lezen en automatisch wilt splitsen met newline. (Je moet import sys
hebben om dit te laten werken).
Als je de gebruiker wilt vragen om invoer, dan kun je raw_input
gebruiken in Python 2.X, en gewoon input
in Python 3.
Als je eigenlijk alleen command-line opties wilt lezen, kun je ze benaderen via de sys.argv lijst.
U zult waarschijnlijk dit Wikibook artikel over I/O in Python ook een nuttige referentie vinden.
Hier's van Python leren:
import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."
Op Unix, zou je het kunnen testen door iets te doen als:
% cat countlines.py | python countlines.py
Counted 3 lines.
Op Windows of DOS, zou je zoiets doen als:
C:\> type countlines.py | python countlines.py
Counted 3 lines.