Python:打印所有argparse参数,包括默认值

NWa*_*ers 3 python logging namespaces sys argparse

我想记录使用argparse模块的python程序的用法.目前,该记录器记录类似于给出的答案在命令行中使用这个职位.但是,这仅提供命令行参数,并且不包括稍后在argparse中设置的默认值(毕竟这是预期用途).有没有一种简单的方法来打印所有argparse选项来创建一个usage包含默认值的漂亮,整洁的日志条目?

进入argparse命名空间以按名称获取每个参数并不困难,但我希望有人能够以简洁的方式提取所需的信息.

任何方向表示赞赏!

sco*_*785 11

我在一个应用程序中做了类似的事情,希望下面的代码片段可以满足您的需求.对vars的调用给了我所有参数的字典.

parser = argparse.ArgumentParser(description='Configure')
....
args = parser.parse_args()
......
options = vars(args)
Run Code Online (Sandbox Code Playgroud)

  • 大!如果有人感兴趣,这是我的日志记录实现:`logger.info("用法:\n {0} \n".format("".join([x for sys.argv中的x]))`` logger.debug("所有使用的设置:")``for k,v in sorted(vars(args).items()):``logger.debug("{0}:{1}".format(k, v))` (4认同)