防止python脚本在没有用户输入任何可选参数的情况下运行

时间:2019-10-13 18:23:09

标签: python

有一个python脚本,并使用argparse定义了一些可选参数,这些参数可以由用户在运行脚本之前提供。如果用户未输入定义的任何可选参数(python example.py->会给出错误消息),则我希望不允许脚本运行。关于如何执行此操作的任何想法?

2 个答案:

答案 0 :(得分:1)

您可以将if语句与在参数名称空间的所有值上使用any函数的表达式一起使用,以测试是否给出了任何选项,如果没有,则打印用法然后退出:

import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a')
parser.add_argument('-b')
args = parser.parse_args()
if not any(vars(args).values()):
    parser.print_usage()
    sys.exit()

答案 1 :(得分:0)

第一个答案很好。 或者,如果在脚本开始时也可以使用simlpe。

import sys

if (len(sys.argv) < x):
    sys.exit("error message here")

其中x是您要查找的参数数量。 否则,您可以使用argparser或手动检查

argv[2] == "-b"