通过命令行运行Python脚本时,可以通过ArgumentParser来高效地接受并解析命令行参数。

流程

新建一个ArgumentParser类对象,然后来添加若干个参数选项,最后通过parse_args()方法解析并获得命令行传来的参数。

import argparser

parser = argparser.ArgumentParser()
# 此处省略添加若干个参数选项的详细步骤
# ...
parser.parse_args()

最后通过parser.<argument_name>来获取传递过来的参数。

添加参数选项

使用add_argument()来添加参数选项

# 添加位置参数
parser.add_argument("echo", help="echo the string you use here")
parser.add_argument("square", help="display ...", type=int)
# 添加可选参数
parser.add_argument("-v", "--verbosity", help="...", type=int, choices=[0, 1, 2], default=0)

对以上代码做出如下解释:

  • 在使用add_argument来添加参数选项的时候,首先要指定参数的名字argument_name这个属性,可选参数有长短两个名称;
  • 在命令行指定位置参数时直接传值,指定可选参数时,先注明长短名称,然后在后面接值;
  • help提示参数的作用,type规定了参数的取值类型,choices以列表的形式规定了值域,default规定了参数的默认值

参数选项组

使用add_mutually_exclusive_group()来添加相互对立的参数选项组

一个对立的可选参数组在指定参数时,只能任选其一或都不选

# 导入模块和新建ArgumentParser类的过程省略
group = parser.add_mutually_exclusive_group()
group.add_argument("-d", "--down")
group.add_argument("-t", "--top")
# ...

最后获取参数时,仍旧是通过parser.downparser.top.

额外的小插曲

对于可选参数还有一个action属性,常见的有store_truecount两种

# 指定-v可选参数时,-v等于True,否则为False
parser.add_argument("-v", action="store_true")
# 指定-v可选参数时,-v等于v出现的次数
parser.add_argument("-v", action="count")

Python参数解析工具ArgumentParser的更多相关文章

  1. Dubbo 泛化调用的参数解析问题及一个强大的参数解析工具 PojoUtils

    排查了3个多小时,因为一个简单的错误,发现一个强大的参数解析工具,记录一下. 背景 Nodejs 通过 tether 调用 Java Dubbo 服务.请求类的某个参数对象 EsCondition 有 ...

  2. PHP 命令行参数解析工具类

    <?php/** * 命令行参数解析工具类 * @author guolinchao * @email luoyecb@163.com */class CommandLine{ // store ...

  3. Python 命令行参数解析工具 argparse

    为什么需要argparse 开门见山,举一个简易计算器代码的例子,其中sys.argv用来读取脚本执行时后面传入的参数. def calculator(x, y, operation): if &qu ...

  4. Python 中命令行参数解析工具 docopt 安装和应用

    什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制. ...

  5. optparse(命令行参数解析工具)

    在用Python做自动化的时候,命令行的解析一定是少不了的,有很多命令行解析工具库,其中Python内建的一个库optparse,还是比较好用的 1.贴代码并注释 # coding=UTF-8 fro ...

  6. osg学习笔记2, 命令行参数解析器ArgumentParser

    ArgumentParser主要负责命令行参数的读取 #include <osgDB/ReadFile> #include <osgViewer/Viewer> int mai ...

  7. python 参数解析ArgumentParser

    #!/usr/bin/env python #coding:utf-8 from argparse import ArgumentParser #--------------------------- ...

  8. JSON参数解析工具类

    /// <summary> /// 解析JSON参数 /// </summary> public class JSONParser { JObject jObj = null; ...

  9. python命令行参数解析模块argparse和docopt

    http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...

随机推荐

  1. P4158 [SCOI2009]粉刷匠(洛谷)

    今天A了个紫(我膨胀了),他看起来像个贪心一样,老师说我写的是dp(dp理解不深的缘故QWQ) 直接放题目描述(我旁边有个家伙让我放链接,我还是说明出处吧(万一出处没有了)我讲的大多数题目都是出自洛谷 ...

  2. 主席树铺垫——总区间第k小

    题目描述(口糊) 先给定一个长度为n的数列,然后给m次操作,每次输入b,求第b小的数. 样例输入 5 7 4 10 9 23 5 1 2 3 4 5 样例输出 4 7 9 10 23 数据范围及温馨提 ...

  3. pom.xml文件中的parent标签

    基本概念 maven的核心就算pom.xm,使用maven是为了更好地帮项目管理包依赖.如果要引入一个jar包,需要在pom文件中加上 <dependency> <groupId&g ...

  4. 167两数之和II-输入有序数组

    from typing import List# 这道题很容易能够想到,只需要遍历两边列表就可以了# 两层循环class Solution: def twoSum(self, numbers: Lis ...

  5. nginx 日志功能详解

    nginx 日志功能 在 nginx 中有两种日志: access_log:访问日志,通过访问日志可以获取用户的IP.请求处理的时间.浏览器信息等 error_log:错误日志,记录了访问出错的信息, ...

  6. Netty 学习笔记(2) ------ 数据传输载体ByteBuf

    Netty中读写以ByteBuf为载体进行交互 ByteBuf的结构 ByteBuf以readerIndex和writerIndex划分为三块区域,废弃字节,可读字节,可写字节.每次从ByteBuf读 ...

  7. 理解Spring(二):AOP 的概念与实现原理

    目录 什么是 AOP AOP 的基本术语 Spring AOP 的简单应用 Spring AOP 与动态代理 Spring AOP 的实现原理(源码分析) 扩展:为什么 JDK 动态代理要求目标类必须 ...

  8. android手机号和密码输入框的一个范例

    https://blog.csdn.net/androidmsky/article/details/49870823

  9. Upload 上传 el-upload 上传配置请求头为Content-Type: "multipart/form-data"

    api接口处添加属性 (标红处) // 校验台账 export const checkEquiment = (data) => { return axios({ url: '/job/equip ...

  10. Python os.readlink() 方法

    概述 os.readlink() 方法用于返回软链接所指向的文件.可能返回绝对或相对路径.高佣联盟 www.cgewang.com 在Unix中有效 语法 readlink()方法语法格式如下: os ...