使cmd arg解析器简单易用。

autoargparse的Python项目详细描述


自动参数分析

使cmd arg解析器简单易用。

依赖性

  • python可以导入argparse

如何使用

  1. pip安装autoargparse

  2. 导入autoargparse

  3. 初始化:
    cmd=autoargparse.cmd()

  4. 使用functon decorator:

    @命令参数(短名称、长名称、nargs、帮助、操作、类型)
    将函数参数设置为参数类型

    @cmd.kwargs(arg_name=short_name,nargs,帮助,操作,类型)
    将函数参数设置为kwargs类型

    @命令标记(run_order=none)
    设置函数运行顺序(整数,较大的第一次运行)

  5. 运行: cmd.run()

示例

#!coding:utf-8importautoargparsecmd=autoargparse.cmd('simple calculator for example.')@cmd.mark(1)@cmd.kwargs(ne='--negative',action='store_true')@cmd.kwargs(ma='--max',action='store_true')@cmd.args('-s','--sum','*',type=int)defadd(*args,ma,ne):ifargsormaorne:d=0ifma:d=max(args)else:d=sum(args)ifne:d=-dprint(d)@cmd.mark(2)@cmd.args('-v',action='count')@cmd.args('-m','--mul',2,help='MUL!!!',type=int)defmul(a,b,v=None):ifnotv:print(a*b)elifv==1:print('a * b =',a*b)elifv==2:print('func =',mul.__name__,'args =',a,b,v)print('a * b =',a*b)@cmd.mark(3)@cmd.args('g',type=int,help='print great')defgreat(a):ifa==1:print('!!!')else:print('Great !!!')if__name__=="__main__":cmd.run()

输出

python .\example.py -h

usage: test.py [-h] [-s [SUM [SUM ...]]] [--max] [--negative] [-m MUL MUL]
               [-v]
               g

simple calculator for test.

positional arguments:
  g                     print great

optional arguments:
  -h, --help            show this help message and exit
  -s [SUM [SUM ...]], --sum [SUM [SUM ...]]
  --max
  --negative
  -m MUL MUL, --mul MUL MUL
                        MUL!!!
  -v

python .\example.py 1

!!!

python .\example.py 2

Great !!!

python .\example.py 1 -m 2 3

!!!
6

python .\example.py 1 -m 2 3 -v

!!!
a * b = 6

python .\example.py 1 -m 2 3 -vv

!!!
func = mul args = 2 3 2
a * b = 6

python .\example.py 1 -s 1 2 3 4

!!!
10

python .\example.py 1 -s 1 2 3 4 --max

!!!
4

python .\example.py 1 -s 1 2 3 4 --negative

!!!
-10

待办事项

  • 添加图形用户界面
  • 更易于使用

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java WLPs微文件(容错)超时实现不中断线程?   使用Jsoup对网页进行java解析。为什么Android上的行为有所不同?   java全屏安卓应用程序功能   java有没有一种方法可以将自定义对象列表放入cloudfirestore中的自定义对象中   平滑后的javagps数据比较   使用Java8谓词查找“最”正确值的函数式编程   java调整JFrame的大小(当子对象调整大小时):如何跟上?   if语句中的java条件   java如何配置JSP应用程序在Jboss和Tomcat上透明地处理JNDI   java如何在spring boot中验证@RequestHeader是否为null?   java从URL检索XML时不写入前几行   java在重写的paintComponent(…)中旋转图像方法   java Android透明GradientDrawable在emulator上变灰   java如何编辑PostgreSQL的Oracle 11G设置   java JAXb在解组期间未填充对象   java重新启动了响应。getBody()。getList(<ListName>)正在返回一个空集合   PHP和Java在能耗方面有什么不同?   没有源属性但嵌入html标记的java iFrame   java JTable导致我的应用程序崩溃