2012-03-14 30 views
4

我在想如何管理來自python腳本的另一個命令的輸入。Python:使用來自其他命令的輸入

例如:

$ cat myfile.txt | my_python_script.py

我的腳本如何從cat命令管理輸入流?我如何從這個管道命令獲得輸入?

...非常感謝。

回答

4

一個簡單而通用的方法是使用fileinput模塊。

import fileinput 

for line in fileinput.input() 
    # do things with line 

這樣你既可以使用腳本在管道(如你現在需要右)或給一個或多個文件的腳本作爲參數(認爲my_python_script.py input.txt input2.txt)。

+0

我會記住這一點,非常感謝。 – user1174386 2012-03-15 12:01:49

1

通過sys.stdin.readlines() 讀取標準輸入的一個很好的選擇:使用pipes模塊。

管道模塊定義了一個類來抽象管道的概念 - 從一個文件到另一個文件的一系列轉換器。由於該模塊使用/ bin/sh命令行,因此需要用於os.system()和os.popen()的POSIX或兼容shell。

這是一個不錯的tutorial

+0

非常感謝。 Muchas gracias!我會讀tuto – user1174386 2012-03-15 12:02:09

相關問題