我需要检查是否设置了输入变量,我使用python 3.5,例如:
./update-stack.py stack-name
(使用stack-name作为参数)
代替
./update-stack.py
(没有堆栈名称我有错误)
Traceback (most recent call last):
File "update-stack.py", line 22, in <module>
stack = sys.argv[1]
IndexError: list index out of range
我已经写了这个用于检查:
if len(sys.argv) <= 0:
print('ERROR: you must specify the stack name')
sys.exit(1)
stack = sys.argv[1]
如何查看print
错误?
由于
答案 0 :(得分:1)
sys.argv
中包含至少一个元素,sys.argv[0]
是脚本或模块名称(或者从命令行使用该开关时为-c
)
您需要测试是否少于2个元素:
if len(sys.argv) <= 1:
或者你可以抓住IndexError
例外:
try:
stack = sys.argv[1]
except IndexError:
print('ERROR: you must specify the stack name')
sys.exit(1)
作为旁注:我会向sys.stderr
打印错误消息:
print('ERROR: you must specify the stack name', file=sys.stderr)