python中的argparse的用法

news/2024/9/19 7:44:47 标签: java, 前端, pytorch

argparse是 Python 标准库中用于命令行参数解析的模块。它可以方便地解析命令行参数,并提供了丰富的功能来处理各种参数类型和选项。


import argparse

# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description='这是一个示例程序,用于演示 argparse 的更多用法')

# 添加参数
# 参数名称的简写或全称
parser.add_argument('-i', '--input', type=str, required=True, help='输入文件的路径(简写:-i,全称:--input)')
parser.add_argument('-o', '--output', type=str, default='output.txt', help='输出文件的路径(简写:-o,全称:--output,默认值:output.txt)')
parser.add_argument('-v', '--verbose', action='store_true', help='是否输出详细信息(简写:-v,全称:--verbose)')

# 规定数据类型
parser.add_argument('--num', type=int, help='一个整数参数')
parser.add_argument('--float_num', type=float, help='一个浮点数参数')

# 默认值
parser.add_argument('--default_str', type=str, default='default_value', help='一个默认值为 "default_value" 的字符串参数')
parser.add_argument('--default_int', type=int, default=100, help='一个默认值为 100 的整数参数')

# 是否是必须值
parser.add_argument('--required_arg', type=str, required=True, help='一个必须提供的参数')

# 处理多个参数
parser.add_argument('--multi_args', nargs='+', type=int, help='多个整数参数')

# 限制参数取值范围
parser.add_argument('--choice_arg', choices=['option1', 'option2', 'option3'], help='只能从指定选项中选择的参数')

# 分组参数
group1 = parser.add_argument_group('Group 1')
group1.add_argument('--group1_arg1', type=str, help='Group 1 中的参数 1')
group1.add_argument('--group1_arg2', type=int, help='Group 1 中的参数 2')

group2 = parser.add_argument_group('Group 2')
group2.add_argument('--group2_arg1', type=float, help='Group 2 中的参数 1')
group2.add_argument('--group2_arg2', type=str, help='Group 2 中的参数 2')

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

# 访问参数值
if args.input:
    print(f'输入文件路径:{args.input}')
if args.output:
    print(f'输出文件路径:{args.output}')
if args.verbose:
    print('将输出详细信息')
if args.num:
    print(f'整数参数:{args.num}')
if args.float_num:
    print(f'浮点数参数:{args.float_num}')
if args.default_str:
    print(f'默认字符串参数:{args.default_str}')
if args.default_int:
    print(f'默认整数参数:{args.default_int}')
if args.required_arg:
    print(f'必须参数:{args.required_arg}')
if args.multi_args:
    print(f'多个整数参数:{args.multi_args}')
if args.choice_arg:
    print(f'选择的参数:{args.choice_arg}')
if args.group1_arg1:
    print(f'Group 1 中的参数 1:{args.group1_arg1}')
if args.group1_arg2:
    print(f'Group 1 中的参数 2:{args.group1_arg2}')
if args.group2_arg1:
    print(f'Group 2 中的参数 1:{args.group2_arg1}')
if args.group2_arg2:
    print(f'Group 2 中的参数 2:{args.group2_arg2}')

在上述示例中,我们创建了一个ArgumentParser对象:

  • - -input和- -output是位置参数,使用type=str指定参数类型为字符串,并通过help参数提供了参数的描述信息。
  • - -verbose是一个布尔型参数,使用action='store_true’表示如果命令行中出现了该参数,则将其值设置为True,否则为False。
  • 使用parse_args()方法解析命令行参数,并将结果存储在args变量中。
  • 可以通过访问args对象的属性来获取参数的值【必须是全称】,并根据参数的值进行相应的处理。
  • 参数名称的简写或全称:通过同时指定简写和全称,用户可以在命令行中使用不同的方式来指定参数。
  • 规定数据类型:使用 type 参数来指定参数的数据类型,确保输入的参数符合预期的数据类型。
  • 默认值:使用 default 参数为参数设置默认值,如果在命令行中未提供该参数,则使用默认值。
  • 是否是必须值:使用 required 参数来指定参数是否是必须提供的,如果在命令行中未提供必须参数,将会报错。
  • 处理多个参数:使用 nargs=‘+’ 来指定参数可以接受多个值,这些值将被存储在一个列表中。
  • 限制参数取值范围:使用 choices 参数来限制参数的取值范围,确保用户只能从指定的选项中选择。
  • 分组参数:使用 add_argument_group() 方法来分组参数,使参数的组织更加清晰。

http://www.niftyadmin.cn/n/5665221.html

相关文章

【Python报错已解决】AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

架构师论文备考-论面向对象建模及应用

摘要 2022年3月1日,我有幸加入公司新智慧公交项目的开发团队,担任项目架构决策的关键角色,并主要负责核心调度模块的设计与开发。在项目启动阶段,我们采纳了再工程的方法论,深入分析了既有平台的核心代码和功能&#x…

Canopen-pn有线通信标准在汽车制造中至关重要

电子元件越来越多地被集成到车辆中,从而实现与物联网世界的连接。该行业中主要的高速串行接口方法包括控制器局域网 (CAN) 总线 。CAN 是运输应用中使用的一种强大的总线标准。它旨在允许微控制器(MCU) 和相关组件与彼此的应用程序进行通信。这无需系统具有主机即可…

MySQL示例:创建数据库与表

目录 创建数据库 创建表 注意事项: 创建数据库 需要登录到MySQL服务器。如果已经连接到了MySQL服务器,可以使用以下命令来创建一个新的数据库: CREATE DATABASE IF NOT EXISTS example_db; 这里的example_db是你想要创建的数据库的名字。…

dpdk课程学习之练习笔记八(dpvs的了解)

只是看到这个,跟着流程做一下练习,了解这个东东是干啥的,再就是搭建环境,基于dpdk的环境,顺手也就练习dpdk的环境搭建了。 0:总结 1:知道了lvs能实现的功能,挺强大。 2&#xff1…

在 Docker 中部署无头 Chrome:在 Browserless 中运行

什么是 Browserless? Browserless 是一款基于云的浏览器解决方案,旨在实现高效的浏览器自动化、网页抓取和测试。 它利用 Nstbrowser 的指纹库,实现随机指纹切换,确保流畅的数据收集和自动化。得益于其强大的云基础设施&#xf…

一键文本提示实现图像对象高质量剪切与透明背景生成

按照提示词裁剪 按照边框裁剪 要实现您描述的功能,即通过一个文本提示就能自动从图片中切割出指定的对象并生成一个带有透明背景的新图像,这需要一个结合了先进的计算机视觉技术和自然语言处理能力的系统。这样的系统可以理解输入的文本指令,并将其转化为对图像内容的精确分…

LeeCode打卡第二十八天

LeeCode打卡第二十八天 第一题:路径总和II(LeeCode第437题): 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也…