gpt4 book ai didi

python - 使用 Python 的 click 库的任意命令行关键字

转载 作者:行者123 更新时间:2023-11-30 22:46:52 26 4
gpt4 key购买 nike

我有一个用 Python 构建的命令行工具 click图书馆。我想扩展此工具以使用用户定义的关键字,如下所示:

$ my-cli --foo 10 --bar 20

通常我会将以下代码添加到我的命令中

@click.option('--foo', type=int, default=0, ...)

但是就我而言,有一些关键字是用户定义的。我不知道用户想要提前指定 foo 或 bar 或其他内容。

一种解决方案

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

$ my-cli --resources "foo=10 bar=20"

这会起作用,但稍微不太令人愉快。

最佳答案

我认为这应该有效:

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()

测试:

$ 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

关于python - 使用 Python 的 click 库的任意命令行关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com