argparse包最简单用法的改进
simple-cli-args的Python项目详细描述
简单的cli参数
一个python主方法装饰器。
对argparse
包进行了增强,以实现其最简单的用法。
需要python 3.6或更高版本。
普通参数变为位置参数,具有默认值的参数变为cli的命名参数,
有缩写的可能性,正如argparse
提供的那样。
帮助选项(-h
或--help
)是自动生成的,其文本取自docstring。
安装
使用pip
pip install simple_cli_args
pip install simple_cli_args
或者,使用预期的python命令代替python3
python3 -m pip install simple_cli_args
使用设置工具
只需在克隆的git存储库的主目录中发布:
./setup.py install
使用量
假设my_cli.py的内容是:
#!/usr/bin/env python3
from simple_cli_args import cli_args
@cli_args
def main(apple, banana, cucumber='green'):
print("Our fruits are:", apple, banana, cucumber)
if __name__ == '__main__':
main() # without arguments given, those will be read from the CLI
然后,我们得到以下打印输出:
$ ./my_cli.py red yellow
Our fruits are: red yellow green
$ ./my_cli.py red yellow --cucumber=purple
Our fruits are: red yellow purple
$ ./my_cli.py red yellow -c nice
Our fruits are: red yellow nice
$ ./my_cli.py red
usage: my_cli.py [-h] [--cucumber | -c CUCUMBER] apple banana
my_cli.py: error: the following arguments are required: banana
$ ./my_cli.py --help
usage: my_cli.py [-h] [--cucumber | -c CUCUMBER] apple banana
positional arguments:
apple
banana
optional arguments:
-h, --help show this help message and exit
--cucumber | -c CUCUMBER
default: green
装饰主类
如果主功能内置到类中,则decorator可以用于其构造函数__init__
方法,也可以用于类本身,如下面的示例所示。
#!/usr/bin/env python3
from simple_cli_args import cli_args
@cli_args
class Main:
def __init__(self, apple, banana, cucumber='green'):
self.fruits = apple, banana, cucumber
def show(self):
print("Our fruits are:", *self.fruits)
if __name__ == '__main__':
main = Main() # without arguments given, those will be read from the CLI
main.show()