有没有办法允许argparse
接受任意标志?
例如,我有一个名为git push
gitter
封装器
我宁愿不必指定git push
可用的所有标志,因为有许多标志。
但是,我仍然希望能够做类似
的事情gitter --all --no-verify
argparse
是否可以采用任意标记并将这些标记传递到git push
?
如果我gitter --fake-flag
,我会立即收到错误而无法解析标记。
答案 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