gpt4 book ai didi

Python动态命令行参数

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:53 26 4
gpt4 key购买 nike

我需要根据另一个参数指定命令行参数。因此,第一个指定的参数应指定操作,然后是该操作的参数。

python test.py create -d what -s size -t type
python test.py delete -d what -a now
python test.py status -x something

是否有可以轻松完成此操作的框架/库?到目前为止,我已经研究过 argparse,但找不到任何可以做到这一点的东西?

最佳答案

问题是 argparse绝对是巨大的,我想这就是为什么你不容易找到它的原因,但如果你通读了整个文档(或知道要查找的术语),你会发现 subcommands 的概念可能会实现你想做的事。这是一个非常快速和简单的示例:

import argparse

parser = argparse.ArgumentParser(prog='PROG')
subparsers = parser.add_subparsers(dest='command', help='sub-command help')
parser_create = subparsers.add_parser('create')
parser_create.add_argument('-d')
parser_create.add_argument('-s')
parser_create.add_argument('-t')

parser_delete = subparsers.add_parser('delete')
parser_delete.add_argument('-d')
parser_delete.add_argument('-a')

parser_status = subparsers.add_parser('status')
parser_status.add_argument('-x')

一个简单的用法:

>>> p = parser.parse_args(['create', '-d', 'what', '-s', 'size', '-t', 'type'])
>>> p.command
'create'
>>> p.d
'what'

>>> p = parser.parse_args(['delete', '-d', 'what', '-a' 'now'])
>>> p.command
'delete'
>>> p.a
'now'

当然,查看文档了解所有细节,例如使用 dest 为其赋予更有意义的名称(您可以看到它与 add_subparsers 调用一起使用示例)。

关于Python动态命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42712272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com