python的argparse模块

本文详细介绍Python标准库中的argparse模块,包括如何创建解析器对象、添加位置参数与可选参数,以及如何使用子解析器来组织命令行界面。通过实例展示了如何定义参数帮助信息、默认值及参数类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考标准库 argparse模块 

模块内容很多,可以过一遍,不必深记,记住大概有这个东西,需要的时候,ctrl+F,直接就可以找到,拿过来用。

 创建解析器对象

import argparse

# 创建一个解析器对象
parser = argparse.ArgumentParser(
    prog="程序的名称,(默认sys.argv[0])",
    usage="脚本的作用,该脚本用来做什么",
    description="最开始的提示文字",
    epilog="结尾处的帮助文字"
)

# 解析参数
args = parser.parse_args()

效果展示: 

添加参数

分为添加位置参数-positional arguments可选参数-optional arguments

位置参数

添加位置参数声明的参数名前缀不带-或--,按照顺序进行解析,在命令中必须出现,否则报错,命令通常为:

import argparse

# 创建一个解析器对象
parser = argparse.ArgumentParser(
    prog="程序的名称,(默认sys.argv[0])",
    usage="脚本的作用,该脚本用来做什么",
    description="最开始的提示文字",
    epilog="结尾处的帮助文字"
)

# 添加位置参数,按顺序解析
parser.add_argument("a")
parser.add_argument("b")
parser.add_argument("c")

# 解析参数
args = parser.parse_args()

 效果展示:

可选参数

 添加可选参数声明的参数名前缀带-或--,前缀是-的为短参数,前缀是--是长参数,两者可以都有,也可以只有一个,短参数和长参数效果一样可选参数的值接在位置参数的后面,不影响位置参数的解析顺序,可选参数执行脚本的时候不是必须带上的。

import argparse

# 创建一个解析器对象
parser = argparse.ArgumentParser(
    prog="程序的名称,(默认sys.argv[0])",
    usage="脚本的作用,该脚本用来做什么",
    description="最开始的提示文字",
    epilog="结尾处的帮助文字"
)

# 添加位置参数,按顺序解析
# parser.add_argument("a")
# parser.add_argument("b")
# parser.add_argument("c")

# 添加可选参数,可选参数需要跟在位置参数的后面
parser.add_argument("-a", "--aa", help="aa的帮助提示", default="aa_test")
parser.add_argument("-b", "--bb", help="bb的帮助提示", default="bb_test")
parser.add_argument("-c", "--cc", help="cc的帮助提示", default="cc_test")

# 解析参数
args = parser.parse_args()
# 输入参数信息
print(args)
print(args.aa)
print(args.bb)
print(args.cc)

效果展示: 

 

子解析器

将其功能拆分为一系列子命令

import argparse

# 创建一个解析器对象
parser = argparse.ArgumentParser(
    prog="test",
    usage="脚本%(prog)s的作用,该脚本用来做什么",
    description="最开始的提示文字%(prog)s",
    epilog="结尾处的帮助文字%(prog)s"
)

subparser = parser.add_subparsers(
    dest="subparser",
    description="子解析器"
)

# 二选一
# python3 main.py jia ...
# python3 main.py jian ...
jia = subparser.add_parser("jia", help="加法")
jian = subparser.add_parser("jian", help="减法")

# default表示参数变量默认是多少,required表示当前参数是必填项,不然会报错
# python3 main.py jia -o 1
jia.add_argument("-o", "--one", help="第一个数字", default=0, required=True)
# python3 main.py jia -t 2
jia.add_argument("-t", "--two", help="第二个数字", default=0, required=True) 

# python3 main.py jian --one 2
jian.add_argument("-o", "--one", help="第一个数字", default=0, required=True)
# python3 main.py jian --two 1
jian.add_argument("-t", "--two", help="第二个数字", default=0, required=True)

args = parser.parse_args()
print(args)
print(args.one)
print(args.two)

效果展示 

执行加法,设置一个函数

import argparse

def fun_jia(args):
    print(args)
    one = args.one
    two = args.two
    sum = one + two
    print(f"{one} + {two} = {sum}")

# 创建一个解析器对象
parser = argparse.ArgumentParser(
    prog="test",
    usage="脚本%(prog)s的作用,该脚本用来做什么",
    description="最开始的提示文字%(prog)s",
    epilog="结尾处的帮助文字%(prog)s"
)

subparser = parser.add_subparsers(
    dest="subparser",
    description="子解析器"
)

jia = subparser.add_parser("jia", help="加法")

jia.add_argument("-o", "--one", help="第一个数字", default=0, required=True, type=int)
jia.add_argument("-t", "--two", help="第二个数字", default=0, required=True, type=int)
jia.set_defaults(func=fun_jia)

args = parser.parse_args()
args.func(args)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值