热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonargparse详解

1.argparse模块作用用于解析命令行参数2.位置参数和可选参数运行以下代码:运行结果:参数为h或help时,parser.parse_args()会输出命令行的位置参数pos

1.argparse模块作用
用于解析命令行参数

2.位置参数和可选参数
运行以下代码:

import argparse
parser = argparse.ArgumentParser()
args = parser.parse_args()

运行结果:
技术分享图片

参数为-h或--help时,parser.parse_args()会输出命令行的位置参数position arguments和可选参数optional arguments
位置参数:按照参数的顺序解析,参数必填
可选参数:以-或--开头,参数非必填

位置参数,可选参数示例如下:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", type=int, help="optional")
args = parser.parse_args()

运行结果:
技术分享图片

num为一个位置参数,type表示参数的类型,参数默认都是string类型的,help表示参数的描述
--mode,以--开头,为一个可选参数,可以有多个别名(--mode,-m)
可选参数,不是必填的,一般用来作条件分支,如下所示:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", type=int, help="optional")
args = parser.parse_args()
result = 0
if args.mode == 1:
    result = args.num ** 2
else:
    result = args.num * 2
print(result)

运行结果:
技术分享图片

当mode=1时,计算num的平方,否则,计算num*2

指定参数的范围,choice

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, choices=[5, 6, 7], help="position")
parser.add_argument("--mode", "-m", action="store_true", help="optional")
args = parser.parse_args()
result = 0
if args.mode:
    result = args.num ** 2
else:
    result = args.num * 2
print(result)

运行结果:
技术分享图片

3.可选参数
位置参数没有太多要讲的,必填,类型必须和定义的一致(默认为string),否则会报错。
可选参数有以下几种action
1)store_true
有参数时为true,没有为false,有参数时不能指定参数的值

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", action="store_true", help="optional")
args = parser.parse_args()
result = 0
if args.mode:
    result = args.num ** 2
else:
    result = args.num * 2
print(result)

运行结果:
技术分享图片

2)count
数值,-m表示1,-mm或-m -m表示2,以此类推

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, choices=[5, 6, 7], help="position")
parser.add_argument("--mode", "-m", action="count", help="optional")
args = parser.parse_args()
result = 0
if args.mode == 1:
    result = args.num ** 2
elif args.mode == 2:
    result = args.num * 2
else:
    result = args.num
print(result)

技术分享图片

不加参数,表示None,可以设置默认count,则-m表示默认值+1

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", action="count", default=1, help="optional")
args = parser.parse_args()
result = 0
if args.mode == 1:
    result = args.num ** 2
elif args.mode == 2:
    result = args.num * 2
else:
    result = args.num
print(result)

运行结果:
技术分享图片

python argparse详解


推荐阅读
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ... [详细]
  • VPX611是北京青翼科技推出的一款采用6U VPX架构的高性能数据存储板。该板卡搭载两片Xilinx Kintex-7系列FPGA作为主控单元,内置RAID控制器,支持多达8个mSATA盘,最大存储容量可达8TB,持续写入带宽高达3.2GB/s。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • ASP.NET MVC中Area机制的实现与优化
    本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文探讨了在使用Azure Active Directory进行用户身份验证时,结合AddAuthentication和RequireAuthenticatedUser的必要性及其潜在冗余问题。 ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
author-avatar
手机用户2602936771
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有