解释器跳过sys.argv中的部分代码

时间:2018-06-20 10:09:38

标签: python-3.x

我在if语句中有代码,用于检查是否在命令行中传递了argv,但是我有一部分代码应该在用户未传递任何参数(仅文件名)的情况下运行。解释器而不是运行该代码,而是立即跳转到如果键入argv作为用户应运行的代码,并显示IndexError:list index out of range。

import sys
if sys.argv[1] == '--list':
    do sth
elif sys.argv[1] == '--remove':
    do sth
else: (Which I thought will be ran with no arguments)
    this part of code is skipped no matter what

如果未键入任何参数,如何使解释器在else语句中运行代码?

1 个答案:

答案 0 :(得分:2)

您正在尝试访问长度为1的数组的元素1。

您应该做的是检查数组的长度,然后再尝试访问它。

import sys

if len(sys.argv) == 1:
    # do something when no arguments are given
    pass
else:
    if sys.argv[1] == 'hi':
        print("hi")