读取参数并将其与 argv 进行比较 - Python

Read and compare argument with argv - Python

我想传递一个参数并从中创建一个条件,请按照以下示例操作:

import argparse

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("--database", required=True, help="path to the 
database images")
args = vars(ap.parse_args())

if  (args == "mnist"):

    print('Hello!')

然后在终端中输入:

python argv.py --database mnist

但我的代码什么也没做。我究竟做错了什么?我怎样才能正确地做到这一点?

在 Argparse 命名空间上调用 vars 给你一个命令。您应该在 vars:

返回的字典中比较现在解析为 Key 'database'database 参数
if args['database'] == "mnist":
    print('Hello!')

通过使用cli_args_system你可以这样解决, 首先,安装库:

linux: pip3 install cli-args-system
windows: pip install cli-args-system

之后:

from sys import exit
from cli_args_system import Args


args = Args()


help = args.flags_content('help','h')
if help.exist():
    HELP_TEXT = '-db/-database  path to the database images'
    print(HELP_TEXT)
    exit(0)


#get the flag
database = args.flag_str('database','db')
#means that the flag dont exist 
if not database:
    print('database is required');exit(0)


if database == 'mnist':
    print('hello')