我想使用 argparse 来解析形式为“arg=val”的命令行 例如,用法是:
script.py conf_dir=/tmp/good_conf
为了实现它,我正在这样做:
desc = "details"
parser = argparse.ArgumentParser(description=desc, add_help=False)
args = parser.add_argument("conf_dir")
args = parser.parse_args("conf_dir=FOO".split())
args = parser.parse_args()
print args.conf_dir
但是,问题在于,在调用脚本时:
python script.py conf_dir=/tmp/good_conf
我得到:
conf_dir=/tmp/good_conf
正如我所料
/tmp/good_conf
所以,问题是:我可以使用 argparse 来解析包含名称值对的 cmd 行吗?有什么提示吗?
编辑:我想这样做而不是像 --conf_dir=/tmp/good_dir 这样的原因是因为还有其他工具(用其他语言编写),它使用 conf_dir=/tmp/good_dir 风格的参数。为了保持一致性,我将以这种方式解析 args。