2017-02-09 75 views
0

我剛剛在python中使用管道和I/O,我從文件中使用sys.stdin.readlines()python中的管道和參數

你如何閱讀額外的參數? 例如:

more input.txt | python program.py 200 

我要存儲在我的計劃「200」作爲變量(INT)使用。

我嘗試:

number = int(sys.argv[1]) 

出於測試目的,我剛纔輸入

print number 

,但我沒有得到 '200'。


更好的解釋:

我有兩個文件, '的test.txt' 和 'test.py'

test.py

#!/usr/bin/python 
import sys 
line = "" 
for n in [line for line in sys.stdin.readlines()]: 
    print n 

當運行

$ more test.txt | python test.py 

它會打印出來

asdfsdf 200 

sldkfjs 100 

kljslkd 300 

我的首要目標就是打印出來與我作爲參數傳遞的數量

我嘗試行:

test.py

#!/usr/bin/python 
import sys 
number = int(sys.argv[1]) 
line = "" 
for n in [line for line in sys.stdin.readlines()]: 
    if n.split()[1] == number: 
     print n 

n.split() [1]應該是文件中每一行的數字是否正確? 當運行

$ more test.txt | python test.py 200 

我想回的是:

asdfsdf 200 

但是,相反它是空白......

+0

外貌並適用於我。我不確定這裏有什麼問題。 –

+0

@Scott Carpenter對不起,我用更好的例子更新了這個問題 –

回答

0

我無法複製你的問題。

這是我的文件:

#!/usr/bin/env python 

import sys 

number = int(sys.argv[1]) 
print number 

正在從命令行與more input.txt | python program.py 200運行和輸出是200

你可以嘗試print str(sys.argv)調查到底是什麼在sys.argv中

+0

對不起,我創建了一個測試情境並在我的問題中更新了它。 –

+0

nvm,我已經想通了,謝謝你的最後一個提示 –