python 单击为选项设置允许值
python click set allowable values for option
我创建了一个 Click 命令,可以将文件从源复制到目标
该命令接受 3 个参数:
1 - 文件来源
2 - 文件的目的地
3 - 传输模式(本地,ftp)
import click
@click.group()
def cli():
pass
@cli.command()
@click.argument('source')
@click.argument('destination')
@click.option('--mode', required = True)
def copy(source, destination, mode):
print("copying files from " + source + " to " + destination + "using " + mode + " mode")
if __name__ == '__main__':
cli()
当我使用这个调用脚本时:command.py copy "C:/" "D:/" --mode=network
我得到以下输出:copying files from C:/ to D:/using network mode
如您所见,我将网络指定为模式,但我只需要两个选项:本地或 ftp
那么如何使用 Click 来设置选项的允许值呢?
您想使用click.Choice
@cli.command()
@click.argument('source')
@click.argument('destination')
@click.option('--mode', type=click.Choice(['local', 'ftp']), required = True)
def copy(source, destination, mode):
print("copying files from " + source + " to " + destination + "using " + mode + " mode")
我创建了一个 Click 命令,可以将文件从源复制到目标
该命令接受 3 个参数:
1 - 文件来源
2 - 文件的目的地
3 - 传输模式(本地,ftp)
import click
@click.group()
def cli():
pass
@cli.command()
@click.argument('source')
@click.argument('destination')
@click.option('--mode', required = True)
def copy(source, destination, mode):
print("copying files from " + source + " to " + destination + "using " + mode + " mode")
if __name__ == '__main__':
cli()
当我使用这个调用脚本时:command.py copy "C:/" "D:/" --mode=network
我得到以下输出:copying files from C:/ to D:/using network mode
如您所见,我将网络指定为模式,但我只需要两个选项:本地或 ftp
那么如何使用 Click 来设置选项的允许值呢?
您想使用click.Choice
@cli.command()
@click.argument('source')
@click.argument('destination')
@click.option('--mode', type=click.Choice(['local', 'ftp']), required = True)
def copy(source, destination, mode):
print("copying files from " + source + " to " + destination + "using " + mode + " mode")