python3中argparse模块

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))

结果:

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

以上

转载地址:https://www.cnblogs.com/dengtou/p/8413609.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 选择超参数

    大部分深度学习算法都有许多超参数来控制不同方面的算法表现。有些超参数会影响算法运行的时间和存储成本,有些超参数会影响学习到的模型质量以及在新输入上推断正确结果的...

    于小勇
  • python和C的主要区别

    C语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发。python是编译型还是解释型这个界限并不明显...

    于小勇
  • Cython入门

    setup这一年也是遇到了很多次,随着python编程学习的不断深度对于python的了解也不断在增加,这里做一次简单的小节。

    于小勇
  • 删除QQ内置浏览器,不再为误点烦恼。

    事情得从好久之前说起,自从上次火绒说QQ推广管家和浏览器有流氓行为。就对QQ内置的浏览器耿耿于怀。今天boke112群主说不喜欢分享的链接被QQ内置浏览器打开。...

    世纪访客
  • 各大代码编辑器的介绍和下载(含下载地址),当之无愧的编辑器还是它!

    Python解释器、pip工具箱和virtuanlenv虚拟环境都安装好了后,基本的Python环境就搭建好了,可以开始我们的“搬砖”之旅了。但是现在还缺一个好...

    汤贤
  • Axure |导航条的实现

    在拖动鼠标上下滑动时,右侧的导航栏目是没有变化的,此外点击导航栏中的按钮,也是不会改变导航栏的位置。现在来模仿下吧

    努力在北京混出人样
  • 《Linux命令行与shell脚本编程大全》第十章 使用编辑器

    主要介绍vim, nano, emacs,KWrite,Kate,GNOME 10.1 vim Unix系统最初的编辑器 10.1.1检查vim软件包 先搞明白...

    xcywt
  • 年轻人都在用的QQ新功能,你了解几个?

    如何和当代年轻人打成一片? 玩转QQ就可以吖! emmm……不会? 没关系! 今天Q妹带来了一般人都不知道的 QQ趣味小功能! 包你轻松学会 今天我们都是00...

    腾讯大讲堂
  • Windows 监控 iPhone 上的 HTTP 访问记录

    有些测试场景需要知道在真实实体手机上访问我们开发的页面时产生了哪些不同的请求、访问了哪些链接。这个事情在 Windows 上做起来很简单,工具也有很多。浏览器自...

    我与梦想有个约会
  • 搭建直播平台及视频直播间搭建的常见问题——域名更换

    我们都知道在直播系统开发完成后,就需要面临搭建直播平台的问题了,只有完成搭建部署,接入相关的三方接口,那么直播系统才能正常的运行。在进行视频直播间搭建时,我们常...

    q3557873521

扫码关注云+社区

领取腾讯云代金券