首页 > 解决方案 > 使用 python argparse 解析参数

问题描述

我找不到任何示例来以我需要的方式解析参数。其中包含 a 的名称:是已知列表(其中 30 个),它们后面的值可能有也可能没有值,但有些是必需的。

creatAlert.py call_type: I alert_id: 25 message: STATUS OF AGENT PLATFORM notes:

所以我试图只是解析call_type: I没有运气。我'I'call_type变量中缺少什么?

parser = argparse.ArgumentParser()
parser.add_argument("call_type:", type=str, help="Testing")
args = parser.parse_args()
print args.call_type

处理包含空格的消息参数是否需要特殊技巧?

标签: pythonpython-2.7argparse

解决方案


argparse期望与提供的格式不同。如果您的上游应用程序不遵循argparse约定,那么argparse将不会轻松运行。

相反,我建议您将整个输入行作为一个字符串。搜索冒号并在这些单词处划分行,将结果值放入字典中。这很容易(足够)用蛮力做。

  • 找到第一个带有冒号的单词;使它成为 dict 键
  • 将单词连接到该键的值中,直到您点击 EOL 或下一个带有冒号的单词。

推荐阅读