Python实战:argparse模块的详细使用

news/2025/3/6 12:56:20/

文章目录

    • 一、基本使用步骤
    • 二、参数类型
    • 三、常用参数选项
    • 四、实例演示
      • 4.1 使用 argparse 解析命令行参数
      • 4.2 完整的示例程序
    • 五、进阶用法
    • 六、总结

argparse 是 Python 标准库中用于解析命令行参数的模块,它使得编写用户友好的命令行界面变得简单易行。以下将详细介绍 argparse 的使用方法,并通过实例演示其应用。

一、基本使用步骤

1、导入模块

python">import argparse

2、创建 ArgumentParser 对象

python">parser = argparse.ArgumentParser(description='描述程序的用途')

description 参数用于描述程序的用途,当用户使用 -h 或 --help 参数时会显示该描述。

3、添加参数

python">parser.add_argument('参数名', help='参数的帮助信息')

add_argument() 方法用于添加命令行参数。
help 参数用于描述该参数的用途。

4、解析参数

python">args = parser.parse_args()

parse_args() 方法用于解析命令行参数,并将结果存储在 args 对象中。

5、使用参数

python">print(args.参数名)

可以通过 args.参数名 的方式访问解析后的参数值。

二、参数类型

add_argument() 方法支持多种参数类型,以下是一些常用的类型:

位置参数 (Positional arguments): 必须提供的参数,顺序固定。

python">parser.add_argument('filename', help='输入文件名')

可选参数 (Optional arguments): 以 - 或 – 开头的参数,顺序不固定。

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

action=‘store_true’ 表示如果指定了该参数,则值为 True,否则为 False。

带值的可选参数:

python">parser.add_argument('-o', '--output', help='输出文件名', type=str)

type 参数用于指定参数值的类型,例如 str, int, float 等。

三、常用参数选项

help: 参数的帮助信息。
type: 参数值的类型。
default: 参数的默认值。
choices: 参数值的可选范围。
required: 参数是否必须提供。
action: 参数的动作,例如 store_true, store_false, append 等。

四、实例演示

argparse__70">4.1 使用 argparse 解析命令行参数

以下是一个简单的示例,演示如何使用 argparse 解析命令行参数:

python">import argparse# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description='计算两个数的和')# 添加位置参数
parser.add_argument('num1', type=int, help='第一个数字')
parser.add_argument('num2', type=int, help='第二个数字')# 添加可选参数
parser.add_argument('-v', '--verbose', help='显示详细信息', action='store_true')# 解析参数
args = parser.parse_args()# 使用参数
result = args.num1 + args.num2if args.verbose:print(f'{args.num1} + {args.num2} = {result}')
else:print(result)

运行示例:

$ python sum.py 1 2
3$ python sum.py 1 2 -v
1 + 2 = 3

4.2 完整的示例程序

以下是一个完整的示例程序:

python">import argparsedef main():parser = argparse.ArgumentParser(description='这是一个示例程序,用于演示 argparse 的用法')parser.add_argument('name', type=str, help='用户的姓名')parser.add_argument('-a', '--age', type=int, default=18, help='用户的年龄,默认为 18')parser.add_argument('-v', '--verbose', action='store_true', help='增加输出的详细程度')args = parser.parse_args()print(f"Hello, {args.name}!")print(f"You are {args.age} years old.")if args.verbose:print("Verbose mode is enabled.")if __name__ == "__main__":main()

运行这个程序,你可以使用以下命令行参数:

python script.py John -a 25 -v

输出将是:

vbnet
Hello, John!
You are 25 years old.
Verbose mode is enabled.

如果你不提供 age 和 verbose 参数:

python script.py John

输出将是:

vbnet
Hello, John!
You are 18 years old.

五、进阶用法

子命令 (Subcommands): 可以使用 add_subparsers() 方法实现子命令功能,类似于 git commit, git push 等命令。

python">subparsers = parser.add_subparsers(dest='command')# 添加 commit 子命令
commit_parser = subparsers.add_parser('commit', help='提交代码')
commit_parser.add_argument('-m', '--message', help='提交信息', required=True)# 添加 push 子命令
push_parser = subparsers.add_parser('push', help='推送代码')
push_parser.add_argument('--force', help='强制推送', action='store_true')

参数组 (Argument groups): 可以使用 add_argument_group() 方法将相关的参数分组显示。

python">group = parser.add_argument_group('group1')
group.add_argument('--foo', help='foo help')
group.add_argument('--bar', help='bar help')

六、总结

argparse 是 Python 中功能强大且易于使用的命令行参数解析模块。通过掌握其基本用法和进阶技巧,可以轻松构建用户友好的命令行界面,提升程序的易用性和可维护性。


http://www.ppmy.cn/news/1577070.html

相关文章

Electron如何执行Python exe程序

在 Electron 应用中执行打包后的 Python exe 程序,通常可以借助 Node.js 的 child_process 模块来实现。以下为你详细介绍具体的实现步骤和示例代码: 1. 确保 Python 可执行文件路径正确 在使用 child_process 模块执行 Python 可执行文件之前&#xf…

makefile中采用echo进行调试

在 Makefile 中使用 echo 输出变量是调试变量值的常用方法。以下是具体用法及注意事项: 一、基础用法:在规则中输出变量 makefile 定义变量 VAR Hello World 在规则中使用 echo 输出变量 print_var: echo “调试 VAR的值是: $(VAR)” 执行命令&#x…

spring boot项目Linux环境jar包启动shell脚本

spring boot jar启动shell脚本示例 使用场景shell脚本文件示例可能遇见的问题1. 无权限使用chomd命令为文件添加权限 2. Shell脚本的行尾格式不兼容通过 Vim 修改文件格式 使用场景 在linux环境,启动小型spring boot项目时,我们总需要一些操作步骤才能将…

软考架构师笔记-进程管理

1.4 进程管理 进程状态:运行、等待、就绪。阻塞不能直接到运行状态,需要到就绪状态排队。五态图等。进程管理:前驱图临界资源:共享的资源,如打印机等临界区:访问临界资源的那段代码称为临界区信号量&#…

代码托管平台对比分析:Gitee与GitLab

文章目录 代码托管平台对比分析:Gitee与GitLab平台概述GiteeGitLab 功能对比代码托管与版本控制CI/CD 集成项目管理用户体验自托管与云托管安全性价格与成本 功能对比表格优势与劣势Gitee 优势Gitee 劣势GitLab 优势GitLab 劣势 实际使用场景Gitee 适用场景GitLab 适…

AI-Ollama本地大语言模型运行框架与Ollama javascript接入

1.Ollama Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种…

SpringMvc与Struts2

一、Spring MVC 1.1 概述 Spring MVC 是 Spring 框架的一部分,是一个基于 MVC 设计模式的轻量级 Web 框架。它提供了灵活的配置和强大的扩展能力,适合构建复杂的 Web 应用程序。 1.2 特点 轻量级:与 Spring 框架无缝集成,依赖…

valgrind 检测多线程 bug,检测 并发 bug concurrent bug parallel bug

valgrind --toolhelgrind ./your_program 如果检测的对象是大型程序,可以设定仅在某些函数中开启 valgrind 的检测: Valgrind 提供了一些客户请求(client requests),可以在代码中插入特定的宏来控制 Valgrind 的行为。…