많은 경우 명령 줄 인수를 전달하고 click
라이브러리를 사용하여 이라는 전역 변수 (이 경우 dict
, DOC
)를 초기화하고 싶습니다.cli : dict 및 그룹 클릭 함수를 초기화하는 방법
나는 시도 다음
#!/usr/bin/python3
import os
import sys
import yaml
import logging
import click
DOC = {}
@click.group()
def cli():
pass
@click.command()
@click.option("--logger-file", required=True, default='{}/blabla/cfg/logger.{}.yml'.format(os.environ['HOME'],os.path.basename(__file__)), show_default=True, help="YAML logging configuration file")
def cli_logger_file(logger_file):
if os.path.exists(logger_file):
try:
with open(logger_file, "rt") as f:
DOC = yaml.safe_load(f.read())
print("logger")
except Exception as e:
print(str(e))
sys.exit()
else:
sys.exit()
if __name__ == '__main__':
cli_logger_file()
print("hi!")
print(DOC)
을하지만 그것을 실행할 때, 출력은 다음과 같습니다
$ python3 etc.py --logger-file=/home/blabla/cfg/logger.src.app.component.yml
logger
{}
당신이 날 이해하는 데 도움이 시겠어요 :
- 을 내가 왜
hi!
이 인쇄되지 않습니까? - 을
@cli.command()
으로 바꾸면 명령 줄 옵션--logger-file
을 인식하지 못하는 이유는 무엇입니까?