我有一个Python
脚本,需要至少一个命令行参数才能使用默认值运行。我想允许用户选择从命令行更改这些默认值。
现在,我使用python script.py arg1
运行它并且效果很好,但我希望能够使用python script.py arg1 [optional arg2 optional arg3]
运行它。
另外,为了澄清,我使用以下代码块来检查协议数量并打印一些信息:
if len(sys.argv) < 2:
print "Error. Required: python "+sys.argv[0]+" arg1 + [optional] arg2 (default 2) + [optional] arg3 (default 100)"
sys.exit(0)
之后,我尝试了以下内容:
if sys.argv[2] == None:
default_value1 == 2
else:
default_value1 == sys.argv[2]
if sys.argv[3] == None:
default_value2 == 100
else:
default_value2 == sys.argv[3]
我还尝试将上面的None
替换为空字符串(""
)或空格(" "
),但我总是收到错误:
if sys.argv[2] == None:
IndexError: list index out of range
如何允许在命令行上传递或忽略其他sys.argv
?我想要明白,我必须给它两个额外的参数(即sys.argv[2]
和sys.argv[3]
)或者根本不给它以使上述代码起作用。这是对的吗?
谢谢!