通过命令行运行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. 题解 洛谷 P5163 【WD与地图】

    首先将操作倒序,把删边转化为加边.先考虑若边是无向边,条件为连通,要怎么处理. 可以用并查集来维护连通性,对每个连通块维护一颗权值线段树,连通块的合并用线段树合并来实现,线段树同时也支持了修改点权. ...

  2. DJANGO-天天生鲜项目从0到1-015-部署-uWSGI+Nginx

    本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...

  3. Vue脚手架创建项目出现 (Failed to download repo vuejs-templates/webpack: Response code 404)

    搭建好(脚手架2.X版本)环境像往常一样使用vue init webpack xxxx 创建项目可以是没多久就开始报错了 报错结果就是:vue-cli · Failed to download rep ...

  4. Zabbix添加监控主机

    一.监控server本机 1.查看主机列表 2.启动server主机的zabbix-agent服务 [root@zabbix ~]# systemctl start zabbix-agent.serv ...

  5. Oracle帐户被锁了,如何解锁

    原文链接:https://jingyan.baidu.com/article/25648fc144b76b9191fd0087.html 背景:Oracle帐户在密码被连续输入错误3次的情况下就会锁定 ...

  6. maven 一些高级用法命令

    发布本地jar到私服 命令 mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=D:\Downloads\OJDBC-Full\ojdbc6.ja ...

  7. 线程_FIFO队列实现生产者消费者

    import threading # 导入线程库 import time from queue import Queue # 队列 class Producer(threading.Thread): ...

  8. Skill 计算两点距离

    https://www.cnblogs.com/yeungchie/ code procedure(ycHowFar(a b) prog((xAB yAB sAB) xAB = xCoord(a) - ...

  9. Chrome IDM下载插件安装使用方法

    一. 下载IDM (1)官方网站: http://www.internetdownloadmanager.com/download.html 二.安装IDM IDM安装 (1)运行安装程序    前进 ...

  10. mongoDB数据库原生配置

    最近小冷在工作中使用到了mongoDB数据库,所以就简单的写了个demo,和大家简单分享下,如果大家也有想分享的东西或者需要分享的东西,生活或者其他都行,可以关注小冷公众号秦川以北或者加小冷微信qxy ...