python指令大全在线-python中的通用命令行生成器

python中是否有通用的命令行生成器?我的意思是像argparse,但具有相反的功能. argparse允许您定义各种参数,然后将给定的命令行字符串解析为这些参数的值.我需要一些东西,让你可以定义各种参数,如argparse,但给定一个参数的dict,值对将生成一个命令行字符串.

示例:

gencmdline = CmdlineGenerator()

gencmdline.add_argument("-f", "--foo")

gencmdline.add_argument("bar")

gencmdline.add_argument("phi")

gencmdline.gen_cmdline(phi="hello", bar=1, foo=2) returns:

"1 hello -f 2"

gencmdline.gen_cmdline(phi="hello", bar=1) returns:

"1 hello"

gencmdline.gen_cmdline(phi="hello", foo=2) raise exception because positional argument bar is not specified.

解决方法:

在常规解析器定义生成的Actions中,可能有足够的信息来完成这项工作.

参加你的例子:

In [122]: parser=argparse.ArgumentParser()

In [123]: arglist = []

In [124]: arg1 = parser.add_argument("-f","--foo")

In [126]: arglist.append(arg1)

In [128]: arg2=parser.add_argument("bar")

In [129]: arglist.append(arg2)

In [131]: arg3=parser.add_argument("phi")

In [132]: arglist.append(arg3)

In [133]: arglist

Out[133]:

[_StoreAction(option_strings=["-f", "--foo"], dest="foo", nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None),

_StoreAction(option_strings=[], dest="bar", nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None),

_StoreAction(option_strings=[], dest="phi", nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)]

add_argument创建一个Action对象(实际上基于操作类型的子类),其属性是默认值或您使用参数指定的属性.

在这个例子中,我将它们作为变量,arg1和列表元素收集.此repr中未显示其他属性.您可以通过交互式口译员探索这些内容.

从你的字典中,dict(phi =’hello’,bar = 1,foo = 2)和这个列表你可以推断出dest =’foo’的参数有一个选项字符串(-f或–foo),以及一切else是默认值(nargs = None是默认的1个参数). dest =’bar’是postional,带有一个空的option_strings.你必须要小心,并注意到发生在phi之前.

parser._actions

是相同的Actions列表,添加了-h.

标签:python,argparse

来源: https://codeday.me/bug/20190702/1359109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值