我在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语句中运行代码?
答案 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")