检查是否存在自变量,并相应地设置一个值

时间:2019-04-25 08:00:55

标签: python argparse

我试图用Python编写程序,该程序需要检查是否存在参数,然后相应地设置要在程序中使用的值。例如:

abc -a -b

-a-b都是可选的。但是-a为程序提供了一些端口号(例如端口1234)的默认值。但是,如果存在-b,则程序必须默认使用其他端口号(例如2215)。

如何使用argparse来做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以这样做:

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-a',
                    action='store_const',
                    const=1234,
                    dest='port')

parser.add_argument('-b',
                    action='store_true',
                    dest='port_override')

args = parser.parse_args()

if args.port_override:
    args.port = 2215

print(args.port)

这告诉argparse,如果指定了-a,则值1234将存储在args.port中。另外,如果指定了-b,则args.port_override将是True。执行完参数解析后,我们可以检查args.port_override的值。

您也可以这样做:

parser.add_argument('-b',
                    action='store_const',
                    const=2215
                    dest='port')

在这种情况下,以第二个为准。