Python 需要 argparse?

Python argparse required?

只有当我没有 select 另一个选项时,我如何才能使它成为必需的参数,所以当我 select 版本时它不应该需要 -f,但其余的什么时候需要?

parser = argparse.ArgumentParser(
        description="This script will check the uri's from XXX")

parser.add_argument(
    "-f", "--file", help="XXX export file to use", required=True)
parser.add_argument("-c", "--check", action="store_true",
                    help="Check the uri's")
parser.add_argument("-p", "--passwords", action="store_true",
                    help="Check the weak passwords")
parser.add_argument("-V", "--version", action="store_true",
                    help="Show version")
self.params = parser.parse_args(self.get_params())

所以,有两件事:

  1. 在一般情况下,这是通过 add_mutually_exclusive_group(required=True) 并将互斥参数添加到该组来完成的(这不是 完全 你想要的,因为它不会允许你通过两个,但它已经足够接近了)。
  2. 在这种特定情况下,您应该使用 the action='version' action 来显示专门为此目的而存在的版本,并保留 -f plain required=True 正如您已经编写的那样它。