在Linux上通过Python解析Windows命令行

时间:2017-03-10 18:07:05

标签: python windows parsing ubuntu cmdline-args

我有一堆像这样的Windows命令行字符串:

"C:\test\my dir\myapp.exe" -somearg=1 -anotherarg="teststr" -thirdarg

我的python脚本适用于Ubuntu,需要解析这些字符串。 我需要以dict的形式获取可执行文件的路径和所有参数。 最简单的方法是什么?

我尝试使用python的argparse,但无法弄清楚如何正确配置它(如果可能的话)。

1 个答案:

答案 0 :(得分:0)

这是一个非常天真的实现:

STRINGS = [
    '"C:\test\my dir\myapp.exe" -somearg=1 -anotherarg="teststr" -thirdarg'
]


def _parse(string):
    parsed = {}

    string_parts = string.split(' -')
    parsed['path'] = string_parts[0]
    del string_parts[0]

    for arg in string_parts:
        kv = arg.split('=')
        parsed[kv[0]] = None if len(kv) < 2 else kv[1]
    return parsed


def main():
    parsed_strings = []
    for string in STRINGS:
        parsed_strings.append(_parse(string))

    print(parsed_strings)


main()

# [{'path': '"C:\test\\my dir\\myapp.exe"', 'somearg': '1', 'anotherarg': '"teststr"', 'thirdarg': None}]

假设有更多复杂的字符串,其中包含空格和短划线的不同变体,正则表达式可能更适合。