代码之家  ›  专栏  ›  技术社区  ›  jss367

Jupyter笔记本中的冒充argparse

  •  0
  • jss367  · 技术社区  · 4 年前

    我正在尝试使用一个用argparse在Jupyter笔记本中编写的函数。为此,我试图“欺骗”argparse,但不知道如何实现。我发现了 this useful SO question/answer 但我还是对argparse有所了解。到目前为止,我得到的是:

    import sys
    import argparse
    
    sys.argv = ['--config-file', "my_config"]
    
    
    def argument_parser():
    
        parser = argparse.ArgumentParser()
        parser.add_argument("--config-file", default="", help="path to config file")
        parser.add_argument(
            "opts",
            help="Modify config options",
            default=None,
            nargs=argparse.REMAINDER,
        )
        return parser
    

    argument_parser() 我明白了

    ArgumentParser(prog='--config-file', usage=None, description=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
    

    然后我试着用以下方法分析参数:

    args = argument_parser().parse_args()
    print("Commandline Args:", args)
    

    输出为:

    Commandline Args: Namespace(config_file='', opts=['my_config'])
    

    Commandline Args: Namespace(config_file='my_config')
    

    我该怎么做?

    1 回复  |  直到 4 年前
        1
  •  1
  •   bigbounty    4 年前
    import sys
    import argparse
    
    sys.argv = ['--config-file','my_config']
    
    
    def argument_parser():
    
        parser = argparse.ArgumentParser()
        parser.add_argument("--config-file", default="", help="path to config file")
        parser.add_argument(
            "opts",
            help="Modify config options",
            default=None,
            nargs=argparse.REMAINDER,
        )
        return parser
    
    args = argument_parser().parse_args(sys.argv)
    print("Commandline Args:", args)
    

    你应该通过 sys.argv parse_args

    输出:

    Commandline Args: Namespace(config_file='my_config', opts=[])