Python print_usage和print_help不打印可选参数

时间:2017-01-27 07:14:05

标签: python argparse

我正在使用以下代码

parser = argparse.ArgumentParser()

if len(sys.argv)==1:
    parser.print_help()
    sys.exit(1)


group = parser.add_mutually_exclusive_group()

group.add_argument(
        "-v","--version",
        dest="ver",
        action='store_true'
)
group.add_argument(
        "-p","--pin",
        dest="pin",
)

args = parser.parse_args()  

但是,参数从未列出。如果没有传递参数,我想要输出相同的输出,就好像传递了--help参数一样。

我尝试过print_help和print_usage,它们的工作方式相同。我有一种感觉,我期待的参数(这里显示的不止一个,我试图节省一点空间)没有被正确识别,因为-h显示为可选参数而其他参数是不

我希望我已经清楚地解释了自己,现在已经找了两天而找不到修复。

1 个答案:

答案 0 :(得分:2)

您过早地致电print_help(),请尝试:

parser = argparse.ArgumentParser()

group = parser.add_mutually_exclusive_group()

group.add_argument(
        "-v","--version",
        dest="ver",
        action='store_true'
)
group.add_argument(
        "-p","--pin",
        dest="pin",
)

if len(sys.argv)==1:
    parser.print_help()
    sys.exit(1)

args = parser.parse_args()