如何在标准输入中传递python脚本中的选项或参数?

如何在标准输入中传递python脚本中的选项或参数?,python,command-line,Python,Command Line,我的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获取行,但失败了 Trace

我的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'
回溯(最近一次呼叫最后一次):
文件“parser.py”,第29行,在
对于fileinput.input(sys.stdin)中的行:
文件“/usr/lib/python2.7/fileinput.py”,下一页第253行
line=self.readline()
文件“/usr/lib/python2.7/fileinput.py”,第345行,在readline中
self.\u文件=打开(self.\u文件名,self.\u模式)
IOError:[Errno 2]没有这样的文件或目录:'\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"/>


有人能帮我吗?

您需要
sys.argv
,它将为您提供在命令行上传递给脚本的值。

Stdin可以由sys.Stdin.readlines()处理,而不是由fileinput.input()中的for行处理。

除此之外,还可以使用单独解析参数?
import fileinput

for line in fileinput.input():
    pass