lines = []
for line in fileinput.input():
lines.append(line)
print(line, end='')
我的問題,我怎麼能得到2到程序,並在同一時間打印出input.txt中的內容?到目前爲止,它將得到2作爲文件名並嘗試將其作爲文件打開,而不是如預期的那樣。你在照片中看到。
lines = []
for line in fileinput.input():
lines.append(line)
print(line, end='')
我的問題,我怎麼能得到2到程序,並在同一時間打印出input.txt中的內容?到目前爲止,它將得到2作爲文件名並嘗試將其作爲文件打開,而不是如預期的那樣。你在照片中看到。
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
@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
'sys.argv'是你的朋友。 –
是的。但我無法得到input.txt – Allen
看起來<不能以這種方式工作。 – Allen