Python 讀取 Pipe 輸入


在 Unix Like 環境下的 Pipe (管線) 十分重要, 它可以將一個程式的輸出, 送給另一個程式處理, 只要中間用 “|” 字符相隔, 讓幾個不同的程式互相配合工作, 以下本章會介紹在 Python 讀取 Pipe 輸入的方法.

在 Python 要讀取 Pipe 輸入, 可以用 sys 模組的 sys.stdin, 它會讀取 /dev/stdin 的輸入, 例如:

以上程式碼會將 stdin 輸入逐行印出, 另一個例子是要將輸入逐行讀取, 然後將數值乘 2, 寫法是這樣:

可以這樣執行測試:

上面會用 echo 輸入三行分別是 1, 2, 3 到 test.py, 執行結果是:

2
4
6

上面的 echo 加入了 -e 參數, 是要讓 echo 直接輸出 \n 換行字串, 如果沒有 -e 參數, 不會輸入 3 行, 而是輸入一行 “1\\n2\\3”.

Leave a Reply