Es mēģinu izpildīt dažus no code golf uzdevumiem, bet tie visi prasa, lai ievades dati tiktu ņemti no stdin
. Kā to iegūt Python?
Jūs varētu izmantot {fileinput
moduli:
import fileinput
for line in fileinput.input():
pass
`fileinput
cilpveidā izstaigās visas ievades rindas, kas norādītas kā komandrindas argumentos dotie failu nosaukumi, vai standarta ievades rindas, ja argumenti nav doti.
Piezīme: line
ietvers nobeiguma jauno rindu; lai to noņemtu, izmantojiet line.rstrip()
.
Ir vairāki veidi, kā to izdarīt.
sys.stdin
ir failam līdzīgs objekts, kuram var izsaukt funkcijas read
vai readlines
, ja vēlaties izlasīt visu vai arī vēlaties izlasīt visu un automātiski sadalīt to pēc jaunas rindkopas. (Lai tas darbotos, ir nepieciešams import sys
.)
Ja jūs vēlaties *pieprasīt lietotājam ievadīt datus, Python 2.X versijā varat izmantot `raw_input
, bet Python 3 versijā - tikai `input
.
Ja patiesībā vēlaties tikai nolasīt komandrindas opcijas, tām var piekļūt, izmantojot sarakstu sys.argv.
Iespējams, jums noderēs arī šis Wikibook raksts par I/O Python.
Šeit's no Learning Python:
import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."
Unix operētājsistēmā to var pārbaudīt, veicot kaut ko līdzīgu:
% cat countlines.py | python countlines.py
Counted 3 lines.
Operētājsistēmā Windows vai DOS jūs varētu veikt:
C:\> type countlines.py | python countlines.py
Counted 3 lines.