如何使用 python argparse 解析 CMake 风格的参数?

How to parse CMake-style arguments with python argparse?

我正在使用 argparse 来解析形式为 -D VAR=VALUE--config VAR=VALUE 的参数,如下所示:

cmd.add_argument('--config', '-D', action = 'append', default = [])

我还想支持 -DVAR=VALUE.

形式的 CMake 样式变量赋值

有没有不用手动 sys.argv 修补就可以使用 argparse 实现它的好方法?

是的,argparse 支持所有常见形式的 cli 参数。示例:

import argparse
cmd = argparse.ArgumentParser()
cmd.add_argument('-D', action='append', default = [])
print(cmd.parse_args())

用法:

$ python test_argparse.py -DVAR=val1 -DDEFINED_VAR -D ANOTHER_DEF -D VAR="string_val"
Namespace(D=['VAR=val1', 'DEFINED_VAR', 'ANOTHER_DEF', 'VAR=string_val'])

但您可能应该设置 2 个不同的参数来处理 -D--config 选项。