【发布时间】:2011-07-06 11:57:39
【问题描述】:
我想使用 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。
【问题讨论】:
-
我没有
argparse可以检查这个,但"conf_dir=FOO".split()实际上不应该是"conf_dir=FOO".split('=')?
标签: python parsing command-line argparse