Получить аргументы командной строки - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь получить аргументы командной строки, прежде чем они будут обработаны нажатием:

print(click.get_current_context().find_root().params)

Это просто печатает пустой случай, хотя я дал script cmd1 cmd2 --arg1 --arg2 3. Я пытаюсь получить строку или список, который будет показывать скрипт, cmd1 и т. Д.

Обновление: похоже, я могу получить доступ к sys.argv. Я думал, что щелчок «потребляет» его, но выглядит нормально. Однако я не знаю, насколько это надежно, что если какой-то код его модифицирует? Я посмотрел на передачу его как мета, но не смог найти хорошее место для вызова get-current-context.

1 Ответ

0 голосов
/ 06 ноября 2019

Я могу получить

  • Имя сценария: используя get_current_context().info_name
  • Передал аргументы в качестве словаря, используя: get_current_context().params

Я используюClick==7.0 в среде Python 3.6.8.

Код:

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
              help='The person to greet.')
def hello(count, name):
    print(click.get_current_context().info_name)
    print(click.get_current_context().params)

if __name__ == '__main__':
    hello()

Вывод программы:

python sample.py --count 2 --name "shovon"
sample.py
{'count': 2, 'name': 'shovon'}

Я использовал образец программы из Нажмите официальныйдокументация .

...