Python的argparse库使用详解


Posted in Python onOctober 09, 2018

argparse是python标准库里面用来处理命令行参数的库

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

位置参数就是程序根据该参数出现的位置来确定的

如:[root@openstack_1 /]# ls root/    #其中root/是位置参数

选项参数是应用程序已经提前定义好的参数,不是随意指定的

如:[root@openstack_1 /]# ls -l    # -l 就是ls命令里的一个选项参数、

基本使用

import argparse

# 创建解析器
parser = argparse.ArgumentParser(description = 'This is a test')
parser.parse_args()

可以在shell中测试:

$ python test.py --help
...

添加参数

import argparse

parser = argparse.ArgumentParser(description = 'This is a test')
parser.add_argument("-p","--port",help='increase output port') # 定义了可选参数-p和--port,赋值后,其值保存在args.port中(其值都是保存在最后一个定义的参数中)
args = parser.parse_args()
print(args.echo)

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)

add_argument()方法参数须知:

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

使用时候:

$ python test.py -p 50
或
$ python test.py --port 50

指定类型

我们也可以在添加参数的时候指定其类型。

import argparse

parser = argparse.ArgumentParser(description = 'This is a test')
parser.add_argument("square",help="display a given number",type=int) # 指定给square的参数为int类型

可选参数

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", help="increase output verbosity")
args = parser.parse_args()
if args.v:
  print("v turned on")

使用:

$ python test.py -v any

文档

更多应用请百度或者查文档:https://docs.python.org/3/library/argparse.html#module-argparse

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
python中有关时间日期格式转换问题
Dec 25 Python
tensorflow 自定义损失函数示例代码
Feb 05 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
python如何编写win程序
Jun 08 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Python扫描端口的实现
Jan 25 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 #Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 #Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 #Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 #Python
让代码变得更易维护的7个Python库
Oct 09 #Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 #Python
Python打包方法Pyinstaller的使用
Oct 09 #Python
You might like
把PHP安装为Apache DSO
2006/10/09 PHP
谈谈PHP语法(4)
2006/10/09 PHP
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
php实现网页端验证码功能
2017/07/11 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
Python利用递归实现文件的复制方法
2018/10/27 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
pytorch之添加BN的实现
2020/01/06 Python
python的列表List求均值和中位数实例
2020/03/03 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
什么是Python包的循环导入
2020/09/08 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
毕业生自荐信的主要内容
2013/10/29 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
pandas中关于apply+lambda的应用
2022/02/28 Python