2017-01-10 16 views
0

欲使用管的數據傳遞給一個Python文件,並且還指定等的輸入的文件:傳遞管道數據到Python程序,並且還輸入文件

cat file.txt|python script.py -u configuration.txt 

我目前有這樣的:

for line in fileinput.input(mode='rU'): 
    print(line) 

我知道有可以用sys.argv的東西,但也許使用fileinput有一個乾淨的方式來做到這一點?

感謝。

回答

1

the documentation

如果文件名是'-',它也被sys.stdin取代。要指定替代文件名列表,請將其作爲第一個參數傳遞給input()

所以,你可以創建一個包含'-'列表以及sys.argv[1:](默認值)的內容,並將其傳遞到input()。或者,或者只是把-在你的Python程序的參數列表:

cat file.txt|python script.py -u - configuration.txt 

cat file.txt|python script.py -u configuration.txt - 

取決於你是否要在標準輸入提供的數據之前或configuration.txt內容後進行處理。

如果您想做任何比標準輸入內容更加複雜的操作,就好像它是一個輸入文件一樣,您可能不應該使用fileinput模塊。

+0

謝謝!從那裏我可以繼續工作! – mclzc