首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Python单击库的任意命令行关键字

带有Python单击库的任意命令行关键字
EN

Stack Overflow用户
提问于 2016-11-22 17:52:59
回答 1查看 210关注 0票数 1

我有一个用Python的点击库构建的命令行工具。我希望将此工具扩展为使用用户定义的关键字,如下所示:

代码语言:javascript
复制
$ my-cli --foo 10 --bar 20

通常,我会在命令中添加以下代码

代码语言:javascript
复制
@click.option('--foo', type=int, default=0, ...)

然而,在我的例子中,有几个关键字是用户定义的。我不知道用户想要提前对foo或bar或其他东西进行消毒。

一个解决方案

目前,我最好的解决方案是使用字符串并执行自己的解析。

代码语言:javascript
复制
$ my-cli --resources "foo=10 bar=20"

这是可行的,但稍微不那么愉快。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-22 19:15:43

我认为这应该是可行的:

代码语言:javascript
复制
import click


@click.command(context_settings=dict(ignore_unknown_options=True,))
@click.option('-v', '--verbose', is_flag=True, help='Enables verbose mode')
@click.argument('extra_args', nargs=-1, type=click.UNPROCESSED)
def cli(verbose, extra_args):
    """A wrapper around Python's timeit."""
    print(verbose, extra_args)


if __name__ == "__main__":
    cli()

测试:

代码语言:javascript
复制
$ python test.py --foo 12
False ('--foo', '12')

$ python test.py --foo 12 -v
True ('--foo', '12')

来自:http://click.pocoo.org/5/advanced/#forwarding-unknown-options

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40748513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档