我正在尝试使用argparse模块创建一个CLI,但是我想要有不同的命令和不同的参数要求,我试过这个:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('foo', help='foo help')
parser.add_argument('test', nargs=1, help='test help')
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
我想要的是能够跑步python test.py foo,python test.py test somearg
但是当我跑步时,python test.py foo我得到了error: too few arguments.有没有一种方法,命令可以像git status,git commit或pip install?或者有更好的方法在python中创建CLI?
ber*_*nie 15
@crodjer是对的;
举个例子:
import argparse
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(title='subcommands',
description='valid subcommands',
help='additional help')
foo_parser = subparsers.add_parser('foo', help='foo help')
bar_parser = subparsers.add_parser('bar', help='bar help')
bar_parser.add_argument('somearg')
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
测试每个subparser的不同args:
$ python subparsers_example.py bar somearg Namespace(somearg='somearg') $ python subparsers_example.py foo Namespace() $ python subparsers_example.py foo somearg usage: argparse_subparsers.py foo [-h] subparser_example.py foo: error: unrecognized arguments: somearg
帮助输出:
$ python subparsers_example.py foo -h usage: argparse_subparsers.py foo [-h] optional arguments: -h, --help show this help message and exit $ python subparsers_example.py bar -h usage: argparse_subparsers.py bar [-h] somearg positional arguments: somearg optional arguments: -h, --help show this help message and exit
| 归档时间: |
|
| 查看次数: |
6734 次 |
| 最近记录: |