如何知道第三个参数是否传递给脚本?

时间:2013-07-23 00:54:40

标签: python command-line-arguments

我正在编写一个脚本,使用英语单词作为参数,而不是传统的--argument-a

我不敢用argparse处理这个问题,但是当我用sys.argv这样做时:

if sys.argv[3]:
    print('yes, there is a third argument')

我得到IndexError: list index out of range。有什么方法可以解决这个问题?我想知道是否有第三个论点。

2 个答案:

答案 0 :(得分:1)

您想检查argv的长度:

if len(sys.argv) > 3:
    print('yes, there is a third argument')

如果你有时间,那么值得学习argparse。它并不太可怕,它使您的代码更容易阅读。

答案 1 :(得分:0)

您可以先使用len()检查长度,或抓住IndexError

if len(sys.argv) > 3:
    # all three arguments are present
    print 'arg1', sys.argv[1], 'arg2', sys.argv[2], 'arg3', sys.argv[3]

或:

try:
   arg1, arg2, arg3 = sys.argv[1], sys.argv[2], sys.argv[3]
except IndexError:
   # arguments are missing