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实现给文件添加内容及得到文件信息的方法
May 28 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python基于http下载视频或音频
Jun 20 Python
把pandas转换int型为str型的方法
Jan 29 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
python实现连连看辅助(图像识别)
Mar 25 Python
Django框架 信号调度原理解析
Sep 04 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
python3 pathlib库Path类方法总结
Dec 26 Python
Python如何使用turtle库绘制图形
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 基于文件头的文件类型验证类函数
2012/05/01 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php实现倒计时效果
2015/12/19 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
python如何使用unittest测试接口
2018/04/04 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python else语句在循环中的运用详解
2020/07/06 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
企业军训感想
2014/02/07 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
未中标通知书
2015/04/17 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
MySQL 原理与优化之Update 优化
2022/08/14 MySQL