Python argparse模块命令行参数处理详解

追风的人
追风的人
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍Python标准库argparse模块的使用方法,涵盖创建ArgumentParser对象、添加参数及解析参数的三步流程。通过具体代码示例,演示了位置参数、可选参数、必选参数及文件类型参数的配置与运行效果,帮助开发者快速掌握命令行工具的参数处理技巧。

本文深入解析Python中利用argparse模块处理命令行参数的具体方法,通过详细的代码示例展示其应用,为相关学习与工作提供有价值的参考。

argparse模块概述

概述

argparse是Python 3标准库中专门用于处理命令行参数的模块。

基本使用流程

使用argparse主要包含以下三个步骤:

  • 实例化ArgumentParser()对象。
  • 调用add_argument()方法注册需要处理的参数。
  • 调用parse_args()方法解析命令行传入的参数。

命令行参数处理示例

具体示例

首先,我们需要创建一个Python脚本文件。


vim test.py

接着,在编辑器中输入模式(i)下编写相关代码。


import argparse # 导入模块

parser = argparse.ArgumentParser() # 创建一个对象
parser.add_argument("square", help="pls enter a num", type=int) # 增加一个叫square的参数,类型必须是int
parser.add_argument("input_str", help="pls enter a string", type=str) # 增加一个叫input_str的参数,类型必须是str
args = parser.parse_args() # 解析
print(args.square ** 2)
print(args.input_str)

编写完成后,我们来执行该脚本。


python test.py 3 "I am a string!"
# 结果是:
# 9
# I am a string!

若需查看脚本支持的参数帮助信息,可执行特定命令。


python test.py -h

接下来,演示如何配置可选参数。


parser = argparse.ArgumentParser()
parser.add_argument("--argument1", “-arg1”, help="display the first argument", type=int) # 参数名前加--,取别名为-arg1
parser.add_argument("--argument2", choices=[5,10,20], help="display the second argument", type=int) # choices 为限定候选列表
args = parser.parse_args()

print(args)
if args.argument1 and args.argument2:
  print(args.argument1 + args.argument2)

执行上述配置后的脚本以观察结果。


python test.py
# Namespace(argument1=None, argument2=None)

python test.py -arg1 3 --argument2 5
# Namespace(argument1=3, argument2=5)
# 8

若需强制要求用户输入必选参数,需进行额外配置。

通过设置required属性来实现必选要求。


parser.add_argument("--num", type=int, required=True, help="must enter a num")

此外,参数类型还可以指定为文件对象。


parser.add_argument('file', type=argparser.FileType('r')) # 读取文件
parser.add_argument('file', default='text.txt', type=argparser.FileType('r')) # 读取文件,预定义参数

以上内容涵盖了本文的核心知识点,希望对读者的学习有所帮助,欢迎继续支持本站获取更多技术分享。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。