打印所有 argparse 参数,包括默认值
Print all argparse arguments including defaults
我想记录使用 argparse 模块的 python 程序的使用情况。目前,logger 记录的命令行用法类似于 this post 中给出的答案。但是,这仅提供命令行参数,不包括稍后在 argparse 中设置的默认值(毕竟这是预期用途)。有没有一种简单的方法来打印所有 argparse 选项以创建一个漂亮、整洁的包含默认值的 usage
日志条目?
进入 argparse 命名空间按名称获取每个参数并不困难,但我希望有人有一种简洁的方法来提取所需的信息。
回应:
太棒了!如果有人感兴趣,这是我的日志实现:
logger.info("Usage:\n{0}\n".format(" ".join([x for x in sys.argv])))
logger.debug("All settings used:") for k,v in sorted(vars(args).items()):
logger.debug("{0}: {1}".format(k,v))
我在一个应用程序中做过类似的事情,希望下面的代码片段能满足您的需求。是对 vars 的调用给了我一个包含所有参数的字典。
parser = argparse.ArgumentParser(description='Configure')
....
args = parser.parse_args()
......
options = vars(args)
我想记录使用 argparse 模块的 python 程序的使用情况。目前,logger 记录的命令行用法类似于 this post 中给出的答案。但是,这仅提供命令行参数,不包括稍后在 argparse 中设置的默认值(毕竟这是预期用途)。有没有一种简单的方法来打印所有 argparse 选项以创建一个漂亮、整洁的包含默认值的 usage
日志条目?
进入 argparse 命名空间按名称获取每个参数并不困难,但我希望有人有一种简洁的方法来提取所需的信息。
回应
太棒了!如果有人感兴趣,这是我的日志实现:
logger.info("Usage:\n{0}\n".format(" ".join([x for x in sys.argv])))
logger.debug("All settings used:") for k,v in sorted(vars(args).items()):
logger.debug("{0}: {1}".format(k,v))
我在一个应用程序中做过类似的事情,希望下面的代码片段能满足您的需求。是对 vars 的调用给了我一个包含所有参数的字典。
parser = argparse.ArgumentParser(description='Configure')
....
args = parser.parse_args()
......
options = vars(args)