使用argparse进行部分解析

2024-10-01 17:34:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在用python编写git的包装器,它允许在多个git repo中运行某些git命令。现在,我想支持所有可能的git命令,我想用以下方式来实现:我想argparse只解析全局选项和子命令;sub命令(这是一个git命令)之后的所有内容,我只想按原样传递给git

argparse是否可以实现这一点

例如:

            Passed on to git as-is
            vvvvv
mgit -t add -p .
^^^^^^^^^^^
Parsed by argparse 


Tags: togit命令内容isonas选项
1条回答
网友
1楼 · 发布于 2024-10-01 17:34:32

我以前也做过类似的事情!argparse的一个不太常用的选项是提供自己的字符串数组。默认情况下,它会查看sys.argv[1:],但您可以根据需要以不同的方式处理argv。我建议如下构造命令:

mgit -t   add -p .

其中限定了子命令的起始位置。范例

parser = ArgumentParser(...)
...

delimit_index = sys.argv.index(" ")
args = parser.parse_args(args=sys.argv[1:delimit_index])
subcommand_args = sys.argv[delimit_index + 1:]

相关问题 更多 >

    热门问题