为点击解析器选择目标变量

Mos*_*ted 5 python command-line command-line-interface command-line-arguments python-click

我想知道如何覆盖click.option( Click lib ) 的目标变量。例如在这样一段代码中

import click

@click.command()
@click.option('--output', default='data')
def generate_data(output_folder):
    print(output_folder)
Run Code Online (Sandbox Code Playgroud)

所以我想使用--output标志但将其值传递给output_folder参数,有点像这样:@click.option('--output', default='data', dest='output_folder')?点击有这种能力吗?我知道 argparse 允许这种行为。

Jac*_*cob 8

是的,请参阅有关参数名称的单击文档中的部分,其中涵盖了选项和参数。

如果没有给参数指定不带破折号的名称,则会通过采用最长的参数并将所有破折号转换为下划线来自动生成名称。对于带有 的选项('-f', '--foo-bar'),参数名称是foo_bar。对于带有 的选项('-x',),参数为x对于带有 的选项('-f', '--filename', 'dest'),该参数称为dest

这是你的例子:

from __future__ import print_function
import click

@click.command()
@click.option('--output', 'data')
def generate_data(data):
    print(data)

if __name__ == '__main__':
    generate_data()
Run Code Online (Sandbox Code Playgroud)

运行它:

$ python2.7 stack_overflow.py --output some_output
some_output
Run Code Online (Sandbox Code Playgroud)