Python argparse toggle flags
argparse中是否有任何方法来分析像
1 | foo.py +s -b |
应该在
目前,我用两个独立的论据,分别是
另一个解决方法是用regex手动解析扩展的arg(这看起来很简单,并且使用自定义描述,但是在执行之前,我只是想看看是否有任何可以使用arg parse本身执行相同操作的东西。
您可以通过将
1 2 3 4 5 6 7 8 9 10 11 | class ToggleAction(argparse.Action): def __call__(self, parser, ns, values, option): setattr(ns, self.dest, bool("-+".index(option[0]))) ap = ArgumentParser(prefix_chars='-+') ap.add_argument('-s', '+s', action=ToggleAction, nargs=0) ap.parse_args(['+s']) Namespace(s=True) ap.parse_args(['-s']) Namespace(s=False) |