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

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

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

感谢任何方向!

【问题讨论】:

    标签: python logging namespaces argparse sys


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了!如果有人感兴趣,这是我的日志实现: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))
    猜你喜欢
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2017-10-13
    • 2022-08-05
    • 2015-09-28
    • 2017-11-16
    • 2023-01-11
    相关资源
    最近更新 更多