argparse允许任意标志

时间:2014-10-15 02:11:45

标签: python argparse

有没有办法允许argparse接受任意标志?

例如,我有一个名为git push

gitter封装器

我宁愿不必指定git push可用的所有标志,因为有许多标志。

但是,我仍然希望能够做类似

的事情
gitter --all --no-verify

argparse是否可以采用任意标记并将这些标记传递到git push

如果我gitter --fake-flag,我会立即收到错误而无法解析标记。

2 个答案:

答案 0 :(得分:6)

您可以使用parse_known_args在列表中留下无法识别的标记。

p = ArgumentParser()
p.add_argument("--foo")
args, remaining = p.parse_known_args("--foo 5 --bar --baz".split())

# args.foo == 5
# remaining = ["--bar", "--baz"]

答案 1 :(得分:0)

为什么不为gitter而不是Python使用bash脚本?类似的东西:

#!/bin/bash
git push --alwaysArg "$@"

运行时:

gitter --all --no-verify

结果命令为:

git push --alwaysArg --all --no-verify