我的python脚本正在使用stdin
用法为grep "asda" myfile" | python myscript.py
我以这种方式使用它
lines = []
for line in fileinput.input():
lines.append(line)
它运作正常。
但现在我需要传递grep "asda" myfile" | python myscript.py -o out
我试图使用fileinput.input(sys.stdin)仅从stdin获取行,但它失败了
Traceback (most recent call last):
File "parser.py", line 29, in <module>
for line in fileinput.input(sys.stdin):
File "/usr/lib/python2.7/fileinput.py", line 253, in next
line = self.readline()
File "/usr/lib/python2.7/fileinput.py", line 345, in readline
self._file = open(self._filename, self._mode)
IOError: [Errno 2] No such file or directory: '<Operation adaptorMethod="search" adaptorName="Search" status="Success" timeCreated="2013-10-15T02:43:33.728-0700" timeLastUpdated="2013-10-15T02:43:33.728-0700"/>\n'
grep的输出包含这样的行
<Operation adaptorMethod="search" adaptorName="Search" status="Success" timeCreated="2013-10-15T02:43:33.728-0700" timeLastUpdated="2013-10-15T02:43:33.728-0700"/>
有人可以帮助我吗?
答案 0 :(得分:0)
您需要sys.argv
,它将为您提供在命令行上传递给脚本的值。
答案 1 :(得分:0)
import fileinput
for line in fileinput.input():
pass
答案 2 :(得分:0)
stdin可以由sys.stdin.readlines()而不是fileinput.input()中的行处理