Python argparse库初体验:5分钟学会命令行参数处理

argparse是Python标准库中强大的命令行参数解析工具,只需5分钟掌握以下核心用法:

1. 基础框架
import argparse

# 创建解析器对象
parser = argparse.ArgumentParser(description="程序描述")

# 添加参数声明
parser.add_argument("参数名", help="参数说明")

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

# 使用参数
print(f"接收到的参数: {args.参数名}")

2. 参数类型详解
参数类型 示例代码 功能说明
位置参数 parser.add_argument("filename") 必须提供的参数
可选参数 parser.add_argument("-v", "--verbose") -v短格式/--verbose长格式
类型转换 parser.add_argument("--num", type=int) 自动转换为整数
默认值 parser.add_argument("--level", default=1) 未提供时使用默认值
布尔标志 parser.add_argument("--debug", action="store_true") 存在即为True
3. 完整示例
import argparse

# 创建解析器
parser = argparse.ArgumentParser(description="文件处理工具")

# 添加参数
parser.add_argument("input_file", help="输入文件路径")
parser.add_argument("-o", "--output", help="输出文件路径")
parser.add_argument("--size", type=int, default=1024, help="处理块大小")
parser.add_argument("--verbose", action="store_true", help="显示详细日志")

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

# 使用参数
print(f"正在处理: {args.input_file}")
if args.output:
    print(f"输出到: {args.output}")
print(f"块大小: {args.size}字节")
if args.verbose:
    print("详细模式已启用")

4. 使用演示
# 基础调用
$ python script.py data.txt
正在处理: data.txt
块大小: 1024字节

# 完整参数
$ python script.py data.txt -o result.txt --size 2048 --verbose
正在处理: data.txt
输出到: result.txt
块大小: 2048字节
详细模式已启用

5. 进阶技巧
  • 互斥参数:使用add_mutually_exclusive_group()
group = parser.add_mutually_exclusive_group()
group.add_argument("--fast", action="store_true")
group.add_argument("--accurate", action="store_true")

  • 参数验证:自定义验证函数
def positive_int(value):
    ivalue = int(value)
    if ivalue <= 0:
        raise argparse.ArgumentTypeError("必须是正整数")
    return ivalue

parser.add_argument("--count", type=positive_int)

关键点总结:

  1. 位置参数必须提供,可选参数以---开头
  2. action='store_true'用于创建布尔标志
  3. 使用help参数生成自动帮助文档(通过-h查看)
  4. 类型转换和默认值能大幅简化参数处理逻辑

现在尝试创建自己的命令行工具吧!只需导入argparse,定义参数规则,即可轻松处理各种命令行输入。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐