parser = argparse.ArgumentParser(description='Run the app')
skill_list = utils.read_yaml_file('skill_list.yml')
parser.add_argument('skill', choices=skill_list, help="Which skill?")
parser.add_argument('endpoints', default=None, help="Configuration file for the connectors as a yml file")
skill = parser.parse_args().skill
endpoints = parser.parse_args().endpoints
在上面的代码中,我可以将两个参数传递如下:
run.py joke endpoints.yml
如果我的“技能”是变量列表,则意味着我不知道用户可能会传递多少参数。在这种情况下,我可以这样做:
run.py joke command weather endpoints.yml
此处的“笑话命令天气”将由“技能”参数传递。我怎样才能做到这一点?
答案 0 :(得分:1)
最好将ConnectionKeepAliveStrategy
或-foo
用于端点。但是如果你想要参数完全相同的传递顺序。这应该起作用
--foo
答案 1 :(得分:0)
您还需要在add_argument
函数中提供nargs
参数。
parser.add_argument('--skill', nargs='+', help='List of skills', required=True)
parser.add_argument('--endpoints', default=None, help="Configuration file for the connectors as a yml file", required=True)
# Usage
# python run.py --skill joke command weather --endpoints endpoints.yml