如何使用 python argparse 可选参数

how to use python argparse optional argument

我的 python 代码看起来像这样

parser.add_argument("-c","--configFile",action ='store_true',\
                    help='I am here one travel')

想法是当 运行 -c 选项时,我可以 select 使用我的 特殊的配置文件。但是,我发出命令 python mypython.py -c myconfig,我得到 unrecognized argument: myconfig。我错过了什么?

"-c" 将存储 TrueFalse,那么为什么要向它传递一个值 (myconfig)?你可以称它为:

python mypython.py -c

如果你想让 -c 接受一个参数,那么它不应该有动作 store_true。

正如 Adam 提到的,您需要更改解析器的 "action",如 in the docs 所述。

但听起来您想指出该特殊配置是否处于活动状态。在这种情况下,使用 action='store_true'action='store_false' 是正确的。您只是不会传递 myconfig 参数。

parser = argparse.ArgumentParser(description='So something')
parser.add_argument(
    '-c',
    '--c',
    dest='enable_config',
    action='store_true',
    required=False,
    help='Enable special config settings',
)