Python-argparse用法详解

argparse是Python标准库中用于解析命令行参数的模块,它使得编写用户友好的命令行接口变得简单。下面我将详细介绍argparse的主要用法。

基本用法

1. 创建解析器

python

import argparse

parser = argparse.ArgumentParser(description='这是一个示例程序')

description参数用于简要描述程序的功能,当用户使用-h--help时会显示。

2. 添加参数

位置参数

python

parser.add_argument("filename", help="要处理的文件名")
可选参数

python

parser.add_argument("-v", "--verbose", help="显示详细信息", action="store_true")

3. 解析参数

python

args = parser.parse_args()

参数类型详解

1. 基本参数类型

python

parser.add_argument("--count", type=int, help="数量")
parser.add_argument("--price", type=float, help="价格")
parser.add_argument("--name", type=str, help="名称")

2. 布尔参数

python

parser.add_argument("--enable", action="store_true", help="启用功能")
parser.add_argument("--disable", action="store_false", help="禁用功能")

3. 选择参数

python

parser.add_argument("--color", choices=["red", "green", "blue"], help="颜色选择")

4. 列表参数

python

parser.add_argument("--numbers", nargs="+", type=int, help="数字列表")

高级用法

1. 默认值和必选参数

python

parser.add_argument("--level", type=int, default=1, help="级别(默认:1)")
parser.add_argument("--required-arg", required=True, help="必选参数")

2. 互斥参数

python

group = parser.add_mutually_exclusive_group()
group.add_argument("--fast", action="store_true", help="快速模式")
group.add_argument("--slow", action="store_true", help="慢速模式")

3. 子命令

python

subparsers = parser.add_subparsers(dest="command", help="子命令")

# 创建子命令'init'的解析器
parser_init = subparsers.add_parser("init", help="初始化")
parser_init.add_argument("--name", required=True, help="项目名称")

# 创建子命令'update'的解析器
parser_update = subparsers.add_parser("update", help="更新")
parser_update.add_argument("--force", action="store_true", help="强制更新")

完整示例

python

import argparse

def main():
    # 创建解析器
    parser = argparse.ArgumentParser(description='这是一个文件处理程序')
    
    # 添加参数
    parser.add_argument("filename", help="要处理的文件名")
    parser.add_argument("-v", "--verbose", action="store_true", help="显示详细信息")
    parser.add_argument("--count", type=int, default=1, help="重复次数(默认:1)")
    parser.add_argument("--output", help="输出文件名")
    parser.add_argument("--mode", choices=["read", "write", "append"], default="read", help="操作模式")
    
    # 解析参数
    args = parser.parse_args()
    
    # 使用参数
    print(f"处理文件: {args.filename}")
    if args.verbose:
        print("详细模式已启用")
    for i in range(args.count):
        print(f"处理中... ({i+1}/{args.count})")
    if args.output:
        print(f"结果将输出到: {args.output}")
    print(f"操作模式: {args.mode}")

if __name__ == "__main__":
    main()

使用帮助

运行程序时添加-h--help参数可以查看自动生成的帮助信息:

text

$ python script.py --help
usage: script.py [-h] [-v] [--count COUNT] [--output OUTPUT] 
                 [--mode {read,write,append}] 
                 filename

这是一个文件处理程序

positional arguments:
  filename              要处理的文件名

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         显示详细信息
  --count COUNT         重复次数(默认:1)
  --output OUTPUT       输出文件名
  --mode {read,write,append}
                        操作模式

argparse模块功能强大且灵活,可以满足大多数命令行参数解析的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值