我正在尝试在 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(使用前将#替换为@)