argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数

原文链接:Python 讲堂 parse_args()详解_如何利用html码转载别人的博客-CSDN博客

argparse基本用法_骑着蜗牛向前跑的博客-CSDN博客_argparse

1初始化

# 1导入模块
import argparse
# 2.建立解析对象
parser=argparse.ArgumentParser()
# 3.增加属性
parser.add_argument("echo",help="echo is here")
# 4实例化对象 args
args=parser.parse_args()# 5打印参数echo
print(args.echo)

命令行输入: python XXX.py abcd

2.type指定类型

# 1导入模块
import argparse
# 2.建立解析对象
parser=argparse.ArgumentParser()
# 3.增加属性,添加帮助,指定类型为int
parser.add_argument("square",help="To square the number given",type=int)
# 4实例化对象 args
args=parser.parse_args()# 5打印参数echo
print(args.square**2)

命令行输入: python xxx.py 5

输出:25

3可选参数:

 add_argument 前,给属性名之前加上“- -”,就能将之变为可选参数。

# 1导入模块
import argparse
# 2.建立解析对象
parser=argparse.ArgumentParser()
# 3.增加属性,--可选参数,action默认操作
parser.add_argument("--bool",help="whether to print sth",action="store_true")
# 4实例化对象 args
args=parser.parse_args()# 5打印参数echo
if args.bool:print("bool=1")

命令行输入 python xxx.py --bool

输出 bool=1

4.参数简写:

parser.add_argument("-b","--bool",action="store_true")
这样,在程序内部我们依旧使用 args.bool,但是在命令行当中我们只需要多写一个“-b”就好了。
---输入:
python argp.py -b
---得到:
bool = 1

5参数解释

add_argument() 方法定义如何解析命令行参数
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

每个参数解释如下:
name or flags - 选项字符串的名字或者列表,例如 foo 或者 -f, --foo。
action - 命令行遇到参数时的动作,默认值是 store。

store_ture/store_false:保存相应的布尔值
        store_const,表示赋值为const;
        append,将遇到的值存储成列表,也就是如果参数重复则会保存多个值;
        append_const,将参数规范中定义的一个值保存到一个列表;
        count,存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;
nargs - 应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。
const - action 和 nargs 所需要的常量值。
default - 不指定参数时的默认值。
type - 命令行参数应该被转换成的类型。
choices - 参数可允许的值的一个容器。
required - 可选参数是否可以省略 (仅针对可选参数)。
help - 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.
metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.
dest - 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.

dest:如果提供dest,例如dest="a",那么可以通过args.a访问该参数

Python--parse_args()详解相关推荐

  1. python区块链开发_Fabric区块链Python开发详解

    Hyperledger Fabric是最流行的联盟区块链平台.Fabric区块链Python开发详解课程 涵盖Fabric区块链的核心概念.Fabric网络搭建.Node链码开发.Python应用开发 ...

  2. python装饰器setter_第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter...

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

  3. 【python】详解类class的继承、__init__初始化、super方法

    原文链接; https://blog.csdn.net/brucewong0516/article/details/79121179?utm_medium=distribute.pc_relevant ...

  4. python与golang_Golang与python线程详解及简单实例

    Golang与python线程详解及简单实例 在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000. var sum int var ...

  5. python 最小二乘法_最小二乘法及其python实现详解

    最小二乘法Least Square Method,做为分类回归算法的基础,有着悠久的历史(由马里·勒让德于1806年提出).它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得 ...

  6. 【python】详解multiprocessing多进程-Pool进程池模块(二)

    [python]详解multiprocessing多进程-process模块(一) [python]详解multiprocessing多进程-Pool进程池模块(二) [python]详解multip ...

  7. 【python】什么是序列,Python序列详解

    什么是序列,Python序列详解 概述 序列索引 序列切片 序列相加 序列相乘 检查元素是否包含在序列中 序列相关的内置函数 range 快速初始化数字列表 概述 所谓序列,指的是一块可存放多个值的连 ...

  8. python多线程详解 Python 垃圾回收机制

    文章目录 python多线程详解 一.线程介绍 什么是线程 为什么要使用多线程 总结起来,使用多线程编程具有如下几个优点: 二.线程实现 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 ...

  9. Python线程详解

    Python线程详解 线程简介 开启多线程 线程之间共享 GIL全局解释器锁 线程间通信 线程简介 线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元. ...

  10. 07 Python数据类型详解

    文章目录 一.整数类型(int)详解 1.1 整数的不同进制 1) 十进制形式 2) 二进制形式 3) 八进制形式 4) 十六进制形式 1.2 数字分隔符 1.3 相关方法 二.字符串类型(strin ...

最新文章

  1. WebRTC内置debug工具,详细参数解读
  2. php基类是什么意思,php中的方法重写是什么意思?
  3. 【数据结构与算法】之深入解析“扁平化多级双向链表”的求解思路与算法示例
  4. 以太坊ipfs_动手:Infura和以太坊上的IPFS入门
  5. equals和=,==的区别
  6. c语言编写单片机技巧
  7. 项目职责_项目经理的9个职责
  8. 在线考试 ajax,关于在线考试使用ajax一问?
  9. 创建用于 iPad 的 iOS 幻灯片应用程序
  10. Hutool 工具类
  11. Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
  12. 稀疏光流python_《稀》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  13. 区块链+农业开启智能化生产时代 解决世界性食品及粮食安全问题
  14. The Rust Programming Language - 第7章 使用包、crate和模块管理不断增长的项目 - 7.1 包和crate
  15. 全国职业院校技能大赛网络搭建与应用赛项——云平台底层的一些命令
  16. Caffeine教程
  17. C++实现LR(1)分析表的构造
  18. tirm php,PHP中trim 会导致乱码的原因
  19. 3D微信启动仪式,扫码启动大屏触摸启动头像汇聚企业logo科技感酷炫效果活动策划发布会创意跳跃互动tioyo
  20. 3D模型:常用3D模型库

热门文章

  1. 块设备驱动程序设计(3)—简单块设备驱动设计
  2. 什么是图灵完备性(Turing complete)?
  3. IDEA调试出现帧不可用
  4. Matlab中imadjust函数的使用方法
  5. imadjust函数分析一
  6. tar -zxvf .tar.gz和tar -xvf .tar
  7. HTML学生个人网站作业设计:电影网站设计——千与千寻(9页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  8. 2013年固安房价必然爆跌的4个理由
  9. 请问一下java在线编程的网站有哪一些?
  10. GitHub多次霸榜,两个月拿下10000+Star,他说基础软件不开源必死无疑