0

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

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

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

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

4

2 回答 2

1

您要检查 的长度argv

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

但是,如果您有时间,值得学习 argparse。它并不太可怕,它使您的代码更易于阅读。

于 2013-07-23T00:56:33.740 回答
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
于 2013-07-23T00:56:24.533 回答