2010-03-30 3 views
6

Sto cercando di leggere nel testo seguente dalla riga di comando in Python 3 (riprodotto alla lettera, a capo e tutti):Python 3: ricevere l'input dell'utente tra cui caratteri di nuova riga

lcbeika 
rraobmlo 
grmfina 
ontccep 
emrlin 
tseiboo 
edosrgd 
mkoeys 
eissaml 
knaiefr 

Utilizzando input, ho può solo leggere nella prima parola come una volta che legge il primo newline che smette di leggere.

C'è un modo per leggerli tutti senza chiamare iterativamente input?

risposta

10

È possibile import sys e utilizzare i metodi su sys.stdin ad esempio:

text = sys.stdin.read() 

o:

lines = sys.stdin.readlines() 

o:

for line in sys.stdin: 
    # Do something with line. 
-1

se si passa il testo nello script come file, è possibile utilizzare readlines()

esempio

data=open("file").readlines() 

oppure è possibile utilizzare fileinput

import fileinput 
for line in fileinput.input(): 
    print line 
+0

lo sto leggendo dalla riga di comando, non passare il testo come un file. –

+0

quindi utilizzare il 2 ° metodo – ghostdog74