python支持选项参数argparse
ArgumentParser参数
Keyword Arguments:
- prog -- The name of the program (default: sys.argv[0])
- usage -- A usage message (default: auto-generated from arguments)
- description -- A description of what the program does
- epilog -- Text following the argument descriptions
- parents -- Parsers whose arguments should be copied into this one
- formatter_class -- HelpFormatter class for printing help messages
- prefix_chars -- Characters that prefix optional arguments
- fromfile_prefix_chars -- Characters that prefix files containing
additional arguments
- argument_default -- The default value for all arguments
- conflict_handler -- String indicating how to handle conflicts
- add_help -- Add a -h/-help option
- allow_abbrev -- Allow long options to be abbreviated unambiguously
# argparse.ArgumentParser __init__ 方法的默认值
prog=None,
usage=None, # 自定义使用方法, 默认会根据 add_argument 生成, 不建议修改
description=None, # 在 help 中添加描述性文字, add_help=Ture 时才生效
epilog=None,
parents=[],
formatter_class=HelpFormatter, # 帮助(-h/--help)文档格式
prefix_chars='-',
fromfile_prefix_chars=None,
argument_default=None,
conflict_handler='error',
add_help=True, # 自动生成 -h/--help 选项,建议保持默认
allow_abbrev=True
代码示例
import argparse
import sys
def func1(arg):
"""
接收处理 -p 选项参数
:param arg:
:return:
"""
print("选项-p,参数是:%s" % arg)
def func2(arg):
"""
接收处理 -c 选项参数
:param arg:
:return:
"""
print("选项-c,参数:%s" % arg)
def func3(arg):
"""
接收处理 -n 选项参数
:param arg:
:return:
"""
print("选项-n,参数是:%d" % arg)
def func4(arg):
"""
接收处理 -a 选项参数
:param arg:
:return:
"""
print("选项-a,参数是:%s" % arg)
def main():
des = "这是一段描述文字,在创建实例时被调用"
parser = argparse.ArgumentParser(sys.argv[0], description=des)
# parser = argparse.ArgumentParser(sys.argv[0], description=des, usage="使用说明")
# parser = argparse.ArgumentParser(sys.argv[0])
parser.add_argument('-p', '--prefix', required=False, default='prefix test', help="测试设置前缀")
parser.add_argument('-c', '--conf', required=True, default='', help="测试设置配置文件")
parser.add_argument('-n', '--num', required=True, default=10, type=int, help="测试设置接收数据类型")
parser.add_argument('-a', '--action', required=True, dest='arg_a', help="测试设置接收变量名")
parser.add_argument('-z', '--zero', required=False, default=0)
"""
添加选项说明:
required 选项参数是否必须
default 默认值
help 在 -h/--help 中选项的描述
type 指定参数类型, 默认 str
dest 接收参数的变量名, 不定义时, 两种情况讨论:
已定义长选项, 变量名只能是长选项名称
未定义长选项, 变量名是短选项
"""
ar = parser.parse_args()
func1(ar.prefix)
func2(ar.conf)
func3(ar.num)
func4(ar.arg_a)
print(ar.zero)
if __name__ == '__main__':
main()
运行结果: