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

标签 python string argparse

如果我执行 args.svc_name,我期望等于 args.option1,因为 svc_name 的值是 option1。但我收到错误“'命名空间'对象没有属性'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)

有人可以帮我吗?

最佳答案

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

print(args.option1)

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

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

或者,getattr(args, svc_name)

关于Python如何从变量的argparse中获取值,而不是变量的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43624460/

相关文章:

python - python中的轻量级单元测试

java - 如何在 Java 中检查两个句子之间删除的单词

php - 在 PHP 中返回第一次出现字符之前的字符串部分

ruby - 由两个不同的分隔符分割的字符串

Python Websocket - 具有时间和消息限制

python - Django_tagging (v0.3/pre) : Configuration issue

python - Unicode解码错误: 'ascii' codec can't decode byte 0x87 in position 10: ordinal not in range(128)

python - Argparse 和命令行语法

python - 提取列表中无序的项目

python - 如何使用 argparse 删除 CLI 参数,以便 unittest 接受 arg 列表