打印所有 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 参数,包括默认值的主要内容,如果未能解决你的问题,请参考以下文章