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

Posted

技术标签:

【中文标题】打印所有 argparse 参数,包括默认值【英文标题】:Print all argparse arguments including defaults 【发布时间】:2017-02-20 01:12:36 【问题描述】:

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

进入 argparse 命名空间按名称获取每个参数并不难,但我希望有人有一种简洁的方法来提取所需的信息。

感谢任何方向!

【问题讨论】:

【参考方案1】:

我在应用程序中做了类似的事情,希望下面的 sn-ps 能给你你所需要的。是对 vars 的调用给了我所有参数的字典。

parser = argparse.ArgumentParser(description='Configure')
....
args = parser.parse_args()
......
options = vars(args)

【讨论】:

太棒了!如果有人感兴趣,这是我的日志实现:logger.info("Usage:\n0\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))

以上是关于打印所有 argparse 参数,包括默认值的主要内容,如果未能解决你的问题,请参考以下文章

ArgParse Python 模块:更改继承参数的默认参数值

检查 argparse 参数集,或使用默认值,或覆盖

未提供值时命令行参数的默认值[重复]

参数标志,不使用时为空,不使用时为默认值

Argparse:在“--help”中包含默认值的方法?

使用 argparse 打印命令行参数?