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