2016-09-01 99 views
1
lines = [] 
for line in fileinput.input(): 
    lines.append(line) 
    print(line, end='') 

enter image description herepython3得到命令終端和打印輸入參數進行

我的問題,我怎麼能得到2到程序,並在同一時間打印出input.txt中的內容?到目前爲止,它將得到2作爲文件名並嘗試將其作爲文件打開,而不是如預期的那樣。你在照片中看到。

+1

'sys.argv'是你的朋友。 –

+0

是的。但我無法得到input.txt – Allen

+1

看起來<不能以這種方式工作。 – Allen

回答

0

input.txt文件的內容可以使用來自python內部的sys.stdin文件句柄來加以說明。 參數必須使用sys.argv數組加以說明。

以下是一個示例腳本。

#!/usr/bin/python 
import sys 
arg=sys.argv[1] #take first argument 
lines=[] 
for line in sys.stdin: 
    lines.append(line) # save line from stdin to the array. Watch out for memory usage. 


print arg 
print lines 
0

@Eugene已經指出的那樣,在你的命令:

./whale.py '2' < input.txt 

input.txt被重定向到標準輸入流。 2將 轉換爲argv。

你得到的錯誤可能是因爲不知怎的,你的腳本認爲argv[1]是要打開的文件。

試試這個:

import sys 
print "this is sys.argv: {}".format(sys.argv[1]) 
print "below is STDIN:" 
for line in sys.stdin: 
    print line