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

Python argparser optional arg that requires other arguments

我在互联网上搜索过,但找不到是否可以与 python argparser 包进行争论,该包是可选的,但在选择时需要参数。

为了更好理解,我会用代码来解释,让大家更容易理解。

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

Python manageaccounts.py --add steam mail user pass

这只是一个例子,但我认为它更容易理解。 基本上,我想要的不是“--add”,而是“--delete”和“--change”参数。有了这个我想说我不知道​​如何使一个参数可选,当它被选择时它需要另一个参数,在这种情况下我选择“--add”并向我的数据库添加一个新行我需要一个"site" a "mail" "user"和"pass",我想制作“ - add”可选的,以及当它选择制作站点邮件用户并通过[= 13 = = 13 =时]

If anyone didn't understand what I want to know is to know how I can make an argument require another arguments.

听起来你想要的是一个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")