我试图在argparse. 但是,我有两个问题:
search(不是必需的)使用位置参数。理想情况下,我认为'search'是主要功能。因此,我希望它的参数是位置性的;虽然,search是不是必需的。但是,至少需要以下一项: search, --name, --list, --add, --import, --encrypt, --decrypt, --delete-database, --rename-database, --backup
另外,--name是不是相互排斥的选项,它是那种多用途:
-n myfirstdb --decrypt--name不存在,我假设最近访问的数据库。目前,我必须运行一个开始变得繁重的检查,以查看是否调用了任何主要选项,并测试是否--name存在。
最后,显然互斥的选项不能一起使用。
我怎样才能search成为这个必需的互斥群体的一部分?我怎样才能成为--name这个必需的组中的一个,但又不与其中任何一个互斥?
我正在试验子解析器,但我不确定它们是否能解决我的问题。任何建议都可能为我节省几天的反复试验时间,非常感谢。
parser.add_argument(
'search', nargs='*', type=str, metavar='S', help='search [field] for string(s)')
parser.add_argument(
'--name', '-n', type=str, help='name of the database; created if does not exist')
main_ex_group = parser.add_argument_group(
title='main functions').add_mutually_exclusive_group()
main_ex_group.add_argument(
'--list', '-l', action='store_true', help='list …Run Code Online (Sandbox Code Playgroud) python command-line command-line-arguments argparse python-3.x