#python #command-line-interface #option #python-click
#python #интерфейс командной строки #python-щелкните
Вопрос:
Я создал команду 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 для установки допустимых значений параметра?
Ответ №1:
Вы хотите использовать click.Выбор
@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")