Python如何从变量中获取argparse的值,而不是变量的名称?

时间:2017-04-26 03:24:24

标签: python string argparse

如果我执行args.svc_name,我期望等同于args.option1,因为svc_name的值是option1。但我得到的错误是"' Namespace'对象没有属性' svc_name''"

parser = argparse.ArgumentParser(prog=None,description="test")   
parser.add_argument("--option1", nargs="?",help="option")
args = parser.parse_args()
svc_name = "option1"
print (args.svc_name)

有人能帮助我吗?

1 个答案:

答案 0 :(得分:5)

ArgumentParser类将键公开为直接属性而不是映射,因此要直接获取属性,只需直接访问它即可。根据问题的例子,它只是

print(args.option1)

如果希望有一些其他变量(例如问题中的svc_name)来存储属性/标志以从argparser获取值,只需将其转换为映射(即dict)使用vars然后调用get方法

print(vars(args).get(svc_name))

或者getattr(args, svc_name)