argparse
是Python内置的命令行参数解析模块。在使用add_argument
方法时,可以通过action
参数指定对参数的特殊处理方式。下面我将详细讲解parser.add_argument
中的action
使用的完整攻略,包括常用的几种action
和它们的用法。
store
使用store
时,将参数值存储到args
的命名空间中。如果在命令行中指定了参数,则存储指定的参数值;否则,将使用默认值。例如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo', action='store', default='bar')
args = parser.parse_args()
print(args.foo)
上面的代码在命令行中运行时不指定--foo
参数值,则args.foo
的值为'bar'
。
store_const
使用store_const
时,将常量(const
)值存储到args
的命名空间中,该常量值与指定的参数名相对应。如果在命令行中指定了该参数,则将该常量值存储到args
的命名空间中。例如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo', action='store_const', const=42)
args = parser.parse_args()
print(args.foo)
上面的代码在命令行中运行时指定--foo
参数,则args.foo
的值为42
;否则为None
。
其他常用action
选项
除了上述两种action
选项,还有一些常用的选项:
store_true
: 将布尔值True
存储到args的命名空间中。store_false
: 将布尔值False
存储到args的命名空间中。append
: 将值追加到列表中。append_const
: 将常量值追加到列表中。version
: 打印程序版本号并退出。
下面是store_true
和store_false
的示例:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo', action='store_true')
parser.add_argument('--bar', action='store_false')
args = parser.parse_args()
print(args.foo)
print(args.bar)
上面的代码在命令行中运行时指定--foo
参数,则args.foo
的值为True
;若指定--bar
参数,则args.bar
的值为False
。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--debug', dest='debug_mode', action='store_true')
parser.add_argument('--no-debug', dest='debug_mode', action='store_false')
parser.set_defaults(debug_mode=False)
args = parser.parse_args()
print(args.debug_mode)
上面的代码在命令行中运行时指定--debug
参数,则args.debug_mode
的值为True
; 若指定--no-debug
参数,则args.debug_mode
的值为False
。若不指定任何参数则默认为False
。
这就是parser.add_argument
中的action
使用的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:parser.add_argument中的action使用 - Python技术站