Viac na
Ako čítate zo stdin?
Snažím sa splniť niektoré z výziev code golf, ale všetky vyžadujú, aby bol vstup prevzatý z stdin
. Ako to získam v Pythone?
1378
3
Môžete použiť modul
fileinput
:fileinput
prechádza všetky riadky na vstupe zadané ako názvy súborov uvedené v argumentoch príkazového riadka alebo štandardný vstup, ak nie sú zadané žiadne argumenty.Poznámka:
line
bude obsahovať koncové nové riadky; na ich odstránenie použiteline.rstrip()
Existuje niekoľko spôsobov, ako to urobiť.
sys.stdin
je objekt podobný súboru, na ktorom môžete volať funkcieread
aleboreadlines
, ak chcete čítať všetko, alebo chcete čítať všetko a automaticky to rozdeliť novým riadkom. (Aby to fungovalo, musíteimportovať sys
.)Ak chcete vyžiadať od používateľa vstup, môžete v Pythone 2.X použiť
raw_input
a v Pythone 3 leninput
.Ak chcete vlastne len čítať voľby príkazového riadka, môžete k nim pristupovať prostredníctvom zoznamu sys.argv.
Za užitočnú referenciu pravdepodobne považujete aj tento článok Wikibooku o vstupoch a výstupoch v jazyku Python.
Tu'je z Learning Python:
Na Unixe by ste to mohli otestovať tak, že urobíte niečo ako:
V systéme Windows alebo DOS by ste urobili: