1、定义:argparse是python标准库里面用来处理命令行参数的库

2、命令行参数分为位置参数和选项参数:

        位置参数就是程序根据该参数出现的位置来确定的
                如:[root@openstack_1 /]# ls root/    #其中root/是位置参数
        选项参数是应用程序已经提前定义好的参数,不是随意指定的
                如:[root@openstack_1 /]# ls -l    # -l 就是ls命令里的一个选项参数

3、使用步骤:

(1)import argparse    首先导入模块
                        (2)parser = argparse.ArgumentParser()    创建一个解析对象
                        (3)parser.add_argument()    向该对象中添加你要关注的命令行参数和选项
                        (4)parser.parse_args()    进行解析

4、argparse.ArgumentParser()方法参数须知:一般我们只选择用description

prog=None     - 程序名

         description=None,    - help时显示的开始文字
          epilog=None,     - help时显示的结尾文字
         parents=[],        -若与其他参数的一些内容一样,可以继承
         formatter_class=argparse.HelpFormatter,     - 自定义帮助信息的格式
         prefix_chars='-',    - 命令的前缀,默认是‘-’
         fromfile_prefix_chars=None,     - 命令行参数从文件中读取
         argument_default=None,    - 设置一个全局的选项缺省值,一般每个选项单独设置
         conflict_handler='error',     - 定义两个add_argument中添加的选项名字发生冲突时怎么处理,默认处理是抛出异常
         add_help=True    - 是否增加-h/--help选项,默认是True)

5、add_argument()方法参数须知:

name or flags...    - 必选,指定参数的形式,一般写两个,一个短参数,一个长参数

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('echo') # add_argument()指定程序可以接受的命令行选项
args = parser.parse_args() # parse_args()从指定的选项中返回一些数据
print(args)
print(args.echo)

结果:

G:\flower\python\arg_parse>python demo1.py foo
Namespace(echo='foo')
foo

action 表示值赋予键的方式,这里用到的是bool类型,action意思是当读取的参数中出现指定参数的时候的行为

help 可以写帮助信息

parser = argparse.ArgumentParser(description = 'this is a description')
parser.add_argument('--ver', '-v', action = 'store_true', help = 'hahaha')
# 将变量以标签-值的字典形式存入args字典
args = parser.parse_args()
if args.ver:
print("Ture")
else:
print("False")
结果:

G:\flower\python\arg_parse>python demo1.py -v

Ture
 
G:\flower\python\arg_parse>python demo1.py -j
usage: demo1.py [-h] [--ver]
demo1.py: error: unrecognized arguments: -j

required    - 必需参数,通常-f这样的选项是可选的,但是如果required=True那么就是必须的了

type   - 指定参数类型

# required标签就是说--ver参数是必需的,并且类型为int,输入其它类型会报错
parser.add_argument('--ver', '-v', required = True, type = int)

结果:

G:\flower\python\arg_parse>python demo1.py -v 1
Ture
 
G:\flower\python\arg_parse>python demo1.py -v ss
usage: demo1.py [-h] --ver VER
demo1.py: error: argument --ver/-v: invalid int value: 'ss'

choices    - 设置参数的范围,如果choice中的类型不是字符串,要指定type

表示该参数能接受的值只能来自某几个值候选值中,除此之外会报错,用choice参数即可
parser.add_argument('file', choices = ['test1', 'test2'])
args = parser.parse_args()
print('read in %s'%(args.file))

结果:

G:\flower\python\arg_parse>python demo1.py test1
read in test1

nargs    - 指定这个参数后面的value有多少个,默认为1

# 表示脚本可以读入两个整数赋予num键(此时的值为2个整数的数组)
parser.add_argument('filename', nargs = 2, type = int)
args = parser.parse_args()
print('read in %s'%(args.filename))
结果:

G:\flower\python\arg_parse>python demo1.py 1 2 3

usage: demo1.py [-h] filename filename
demo1.py: error: unrecognized arguments: 3
分析:nargs还可以'*'用来表示如果有该位置参数输入的话,之后所有的输入都将作为该位置参数的值;‘+’表示读取至少1个该位置参数。'?'表示该位置参数要么没有,要么就只要一个。(PS:跟正则表达式的符号用途一致。)
如:

parser.add_argument('filename', nargs = '+', type = int)
args = parser.parse_args()
print('read in %s'%(args.filename))

dest   - 设置这个选项的value解析出来后放到哪个属性中

parser.add_argument('-file', choices = ['test1', 'test2'], dest = 'world')
args = parser.parse_args()
print('read in %s'%(args.world))

python3中argparse模块的更多相关文章

  1. python中argparse模块用法实例详解

    python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

  2. Python3中正则模块re.compile、re.match及re.search函数用法详解

    Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表 ...

  3. python中argparse模块简单使用

    python中argparse模块简单使用 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2. ...

  4. python3 中mlpy模块安装 出现 failed with error code 1的决绝办法(其他模块也可用本方法)

    在python3 中安装其它模块时经常出现 failed with error code 1等状况,使的安装无法进行.而解决这个问题又非常麻烦. 接下来以mlpy为例,介绍一种解决此类安装问题的办法. ...

  5. python中argparse模块的使用

    有两个文件一个是 文件1:sync_shop_source_bimer.sh 文件2:sync_shop_source_bimer.py 在sync_shop_source_bimer.sh 中调用s ...

  6. Python3中的模块

    模块使用哪种语言实现并不重要,因为所有的模块导入与使用的方式都相同. 1.常用模块导入格式: import importable1,importable2,... import importable ...

  7. python3中time模块的用法及说明

    python中,导入time模块使用的命令是 import time 可以使用以下命令查看time模块内置的能够使用的方法: dir(time) 可以使用以下命令查看time模块中每个内置方法的说明: ...

  8. Python3 中 random模块

    Python中的random模块用于生成随机数. 下面具体介绍random模块的功能: 1.random.random() #用于生成一个0到1的 随机浮点数:0<= n < 1.0 im ...

  9. Python3中urllib模块的使用

    转载自:https://www.cnblogs.com/php-linux/p/8365941.html 1.基本方法 urllib.request.urlopen(url, data=None, [ ...

随机推荐

  1. IDEA导入Git项目后右键项目找不到Git选项的解决方法

    进入Setting -> version Control -> 在下图的第二步中是否有灰色的Module,选中它->点击第三步的+即可 转自:https://blog.csdn.ne ...

  2. python yield,yield from,深浅拷贝

    (一)yield和yield from 转自:理解yield   yield from (1)yield 1.通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表 ...

  3. js动态改变setInterval的时间

    <!DOCTYPE html> <html> <head> <!--meta name="viewport" content=" ...

  4. 百度地图API实时画出动态运行轨迹(一条行驶轨迹),车头实时指向行驶方向,设置角度偏移

    参考网址:https://blog.csdn.net/skywqnan/article/details/79036262 改变车的方向:http://www.cnblogs.com/peixuanzh ...

  5. vue Baidu Map --- vue百度地图插件

    vue Baidu Map 官网:https://dafrok.github.io/vue-baidu-map/#/zh/start/installation javascript 官网:http:/ ...

  6. dependent object 和root object

    dependent object 是root object 下面的字节点.每个节点被访问,都要通过 root object 进入.

  7. [svc]tcp三次握手四次挥手&tcp的11种状态(半连接)&tcp的time-wait

    TCP的状态转化过程(11种状态)以及TIME_WAIT状态 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就 ...

  8. Vue.js数据响应基础原理

    许多前端JavaScript框架(例如Angular,React和Vue)都有自己的数据相应引擎.通过了解相应性及其工作原理,您可以提高开发技能并更有效地使用JavaScript框架.在视频和下面的文 ...

  9. 爬虫---爬虫er与反爬虫er之间的斗争 转发

    转自:昵称:python修行路 https://www.cnblogs.com/zhaof/p/7326260.html

  10. aos.css 动画效果

    aos网址 https://codepen.io/michalsnik/pen/WxNdvq <div class="item" data-aos="fade-up ...