允许Python脚本的可选sys.argv

时间:2017-09-27 15:54:07

标签: python python-2.7 python-3.x command-line-arguments

我有一个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])或者根本不给它以使上述代码起作用。这是对的吗?

谢谢!

0 个答案:

没有答案