Python检查变量是否设置或为空

时间:2018-03-21 16:24:39

标签: python python-3.x

我需要检查是否设置了输入变量,我使用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错误?

由于

1 个答案:

答案 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)