在 python 中记录 argparse 的值

2024-03-22

我正在尝试在 python 中使用 argparse 和logging 模块。我运行的程序有很多可能的选项,并且我已经成功实现了 argparse 模块来处理此任务。

我想记录程序运行时每个选项的值并将其发送到日志文件。我尝试了以下几件事,并将遇到的相关错误作为评论包含在其下方。

parser = argparse.ArgumentParser()
parser.add_argument('input', action="store", default='fort.13', type=str)

args = parser.parse_args()

# First try:
logging.info("Input args: " + args)
# TypeError: cannot concatenate 'str' and 'Namespace' objects

# Second try:
for x in args:
  logging.info(x)
# TypeError: 'Namespace' object is not iterable

执行此操作的正确方法是什么?


您可以使用vars获取已解析参数的属性:

for arg, value in sorted(vars(args).items()):
    logging.info("Argument %s: %r", arg, value)

这在the docs http://docs.python.org/library/argparse.html#the-namespace-object.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中记录 argparse 的值 的相关文章

随机推荐