2017-02-26 38 views
2

我知道我不能枚舉()上sys.stdin,但我必須做這樣的事情沒有記憶讀取整個輸入:環路上sys.stdin

for i, line in enumerate(sys.stdin): 
    line = line.split() 
    if sys.stdin[i][0]=='something': 
     foo(sys.stdin[i][0]) 
    else: 
     foo(sys.stdin[i+1][0]) 

那麼,怎樣才能在迭代sys.stdin沒有讀取所有內容?

+0

什麼是'線路'?我在'line'上看不到任何動作。 – Arman

+0

sys.stdin [i] [0]類似於[0]行 – salvaz

回答

0

您可以使用readline()來獲得一行一行sys.stdin。如果是在發電機內部,則可以構造一個簡單的for環路:

def read_stdin(): 
    readline = sys.stdin.readline() 
    while readline: 
     yield readline 
     readline = sys.stdin.readline() 

for line in read_stdin(): 
    line = line.split() 
    print(line)