需要其他参数的Python argparser可选arg

问题描述 投票:0回答:1

我已经在互联网上搜索,但找不到是否可以使用可选的python argparser软件包进行参数设置,但选择该参数时需要参数。

为了更好地理解,我将在代码中进行解释,以便大家更容易理解。

我的目标是拥有一个数据库,其中包含我已注册的所有网站和应用,并在其中存储该网站或平台,邮件,用户和密码。我想创建一些可选参数,例如:

Python manageaccounts.py --add steam mail user pass

这只是一个例子,但我认为它更容易理解。基本上,我希望使用“ --delete”和“ --change”自变量来代替“ --add”。这样,我想说的是,我不知道如何使参数成为可选参数,即选择该参数时它需要另一个参数,在这种情况下,我选择“ --add”,并在数据库中添加新行,所以我需要“站点”是“邮件”,“用户”和“传递”,我想将“ --add”设为可选,并在选择该选项时使站点邮件成为用户并需要传递]

[如果有人不理解,我想知道的就是知道我如何提出一个论点需要另一个论点。

python arguments parameter-passing command-line-arguments argparse
1个回答
1
投票

想要的声音是subparser

这里是一个例子:

import argparse

parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(dest='subparser')

add = subparsers.add_parser("add")
add.add_argument('steam')
add.add_argument('mail')
add.add_argument('user')
add.add_argument('password')

delete = subparsers.add_parser("delete")
delete.add_argument('user')

args = parser.parse_args()

if args.subparser == 'add':
    print("Called add with arguments", args.user, args.mail, args.steam, args.password)
elif args.subparser == 'delete':
     print("Called delete with arguments", args.user)
else:
    print("Unknown option")


© www.soinside.com 2019 - 2024. All rights reserved.