【问题标题】:Parse known and unknown args with typer cli使用 typer cli 解析已知和未知的参数
【发布时间】:2021-02-21 17:18:43
【问题描述】:

使用 argparse 我可以同时解析已知和未知的 args

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
known, unknown = parser.parse_known_args(['--foo', 'BAR', 'spam'])
print(known)
# Namespace(foo='BAR')
print(unknown)
# ['spam']

你怎么能用typer做到这一点?

【问题讨论】:

    标签: python command-line-interface argparse typer


    【解决方案1】:

    运行这个:

    from sys import argv
    
    import typer
    
    app = typer.Typer()
    
    
    @app.command(
        context_settings={"allow_extra_args": True, "ignore_unknown_options": True}
    )
    def main(foo: str = typer.Option(...), unkown_args: typer.Context = typer.Option(None)):
        typer.echo(f"known arg: {foo}")
        for unkown_arg in unkown_args.args:
            typer.echo(f"Got extra arg: {unkown_arg}")
    
    
    if __name__ == "__main__":
        argv.extend(["--foo", "BAR", "spam"])
        app()
    

    将输出:

    known arg: BAR
    Got extra arg: spam
    

    来源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-23
      • 1970-01-01
      • 2022-01-26
      • 2011-11-06
      • 2019-08-11
      • 2011-10-04
      • 2023-03-09
      • 2018-06-01
      相关资源
      最近更新 更多