[英]python cat (echo) equivalent for stdin
我以為這個程序將逐行回顯我的控制台輸入:
import os, sys
for line in sys.stdin:
print line
不幸的是,它等待EOF( Ctrl + D ),然后它產生輸出。 我應該如何修改我的程序以逐行獲取輸出?
Python 2.x:
for line in iter(sys.stdin.readline, ''):
print line,
Python 3.x:
for line in iter(sys.stdin.readline, ''):
print(line, end='')
請參閱有關iter()
的文檔,其中包含兩個參數,它實際上是從這樣的文件中讀取的一個示例。
Python 2.x:
while True:
sys.stdout.write(sys.stdin.readline())
Python 3.x:
while True:
print(sys.stdin.readline(), end = "")
當您for line in file:
語句中使用for line in file:
,Python會為您管理緩沖,這意味着您無法控制在循環開始執行之前將讀取多少行。 當你調用file.readline()
,它將從文件中讀取一行並執行一次循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.