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压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
python的keyword模块用法实例分析
Jun 30 Python
python实现红包裂变算法
Feb 16 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
Python3开发环境搭建详细教程
Jun 18 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 Python
python Django框架快速入门教程(后台管理)
Jul 21 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 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JMenuTab简单使用说明
2008/03/13 Javascript
XENON基于JSON变种
2010/07/27 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
python对DICOM图像的读取方法详解
2017/07/17 Python
python程序封装为win32服务的方法
2021/03/07 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
Django使用rest_framework写出API
2020/05/21 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
股权投资意向书
2014/04/01 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
医德医风学习心得体会
2016/01/25 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server