您应该考虑改用argparse模块。getopt有点有限。。。在
这个模块更方便(代码更少,帮助和错误信息更丰富)。在您的情况下,这可能是:parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('infile', nargs=1, help='input file name')
parser.add_argument('outfile', nargs='?', help='output file name')
在本例中,outfile是可选的,您可以指定一个默认的输出文件名:
^{pr2}$
关于getopt和{}here(相互比较)的更多详细信息。在
编辑:
以下是使用getopt(据我所知),即使用gnu_getopt切换到GNU mode:import getopt
import sys
output_name = 'out.txt'
input_name = ''
print 'ARGV :', sys.argv[1:]
options, remainder = getopt.gnu_getopt(sys.argv[1:], 'o:', ['input-path',
'output-name=',
])
print 'OPTIONS :', options
for opt, arg in options:
if opt in ('-o', ' output-name'):
output_name = arg
else:
pass
# Get input name by yourself...
input_name = remainder[0]
print 'OUTPUTNAME :', output_name
print 'REMAINING :', remainder
print 'INPUTNAME :', input_name
呼叫:python parse_flv.py input -o output
或者python parse_flv.py -o output input
输出:ARGV : ['-o', 'output', 'input']
OPTIONS : [('-o', 'output')]
OUTPUTNAME : output
REMAINING : ['input']
INPUTNAME : input
这将确认您必须自己处理remaining列表。。。在
但是,至少,你可以改变这两个选项的顺序。在
有趣的来源here。