使用argparse的可选命名参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用argparse的可选命名参数相关的知识,希望对你有一定的参考价值。

在以下3种方式中使用我的Python程序是有效的:

$ python prog.py # 1
$ python prog.py -d # 2
$ python prog.py -d FILE # 3

每个都做不同的事情。 (1)根本不会将东西转储到文件中。 (2)将其转发给dump.log。 (3)将其转发给FILE

在我打电话给parse_args()之后,我不确定如何区分(1)和(2)。这是我的代码:

parser = ArgumentParser()
parser.add_argument(
    '-t', '--tag-dump',
    metavar='FILE',
    help="dump enriched tags to FILE (default: dump.log)",
    action='store',
    nargs='?',
    dest='etags_filename',
    default='dump.log'
)
args = parser.parse_args()

现在我该怎么做?

答案

你只需要向const提供一个parser.add_argument()参数。如果使用该选项而未在命令行上指定值,则指定将填充的值。然后,您可以测试args.etags_filenameconst值(案例2)还是default'dump.log'(案例1)。

以上是关于使用argparse的可选命名参数的主要内容,如果未能解决你的问题,请参考以下文章

Argparse - 子解析器中位置参数之前的可选参数

使用不需要指定输出文件名的可选参数运行 argparse

Argparse:具有可变参数的选项的可选参数

Python argparse:可以命名或定位的命令行参数

python argparse - 我可以只使用互斥的可选参数还是有更好的方法

Hibernate中带有命名查询的可选参数?