详解python的argpare和click模块小结


Posted in Python onMarch 31, 2019

一、argparse模块

1、模块说明

# argparse是python的标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块,argparse能够根据程序中的定义的sys.argv中解析出这些参数,

# 并自动生成帮助和使用信息

2、模块常用的参数

# 参数说明:
# name/flag:参数的名字
# action:遇到参数的动作,默认值是store
# nargs:参数的个数,可以是具体的数字,或者是+或者是*,*表示0个或者多个参数,+号表示1个或者多个参数
# default:不指定参数时的默认值
# type:# 参数的类型
# choice:参数允许的值
# required:可选参数是否可以省略
# help:参数的帮助信息
# dest:解析后参数的名称

3、使用方法

import argparse
def _argparse():
 parseobj = argparse.ArgumentParser(description="This is script help")
 # 参数说明:
 # name/flag:参数的名字
 # action:遇到参数的动作,默认值是store
 # nargs:参数的个数,可以是具体的数字,或者是+或者是*,*表示0个或者多个参数,+号表示1个或者多个参数
 # default:不指定参数时的默认值
 # type:# 参数的类型
 # choice:参数允许的值
 # required:可选参数是否可以省略
 # help:参数的帮助信息
 # dest:解析后参数的名称
 parseobj.add_argument("--host",action='store',dest='host',required=True,default="127",help="This is a host ip address",type=int)

 parseobj.add_argument("--P",'--passwd',action='store', dest='pwd', required=True, default="admin123.",help="This is a host password", type=str)
 parseobj.add_argument("--V", '--version', action='version', version="%(prog)s 0.1")
 return parseobj.parse_args()
if __name__ == '__main__':
 res = _argparse()
 print(res.pwd)
 print(res.host)

详解python的argpare和click模块小结

4、最后我们测试一下这个模块

a、测试 -h选项,这里-h和--help的效果是一样的

详解python的argpare和click模块小结

b、测试--V选项和--version选项

详解python的argpare和click模块小结

c、测试一下输入的正确的参数

详解python的argpare和click模块小结

二、click模块

1、模块介绍

click模块的作者就是Flask的作者,(Armin Ronacher)开发的一个第三方的模块,用于快速创建命令行。他的作用用python标准库中的argparse相同,但是

使用更加简单,click相对于标准库的argparse,就好比requests库相当于标准库的urllib库,click是一个第三的库,因此在使用之前需要安装

2、模块安装

E:\python3\Scripts>pip3.6.exe install click

3、使用步骤

a、使用@click.command()装饰一个函数,使之成为命令行的接口

b、使用@click.option()等装饰函数,为其添加命令行选项等

c、先看一个官方的例子

import click

 

# click模块的作者就是Flask的作者,(Armin Ronacher)开发的一个第三方的模块,用于快速创建命令行。他的作用用python标准库中的argparse相同,但是

# 使用更加简单,click相对于标准库的argparse,就好比requests库相当于标准库的urllib库,click是一个第三的库,因此在使用之前需要安装

 

@click.command()

@click.option('--count',default=1,help='Number of greetings')

@click.option('--name',prompt='your name',help='The person to greet')

def hello(count,name):

 for x in range(count):

  click.echo("hello {name}".format(name = name))

 

if __name__ == '__main__':

 hello()

详解python的argpare和click模块小结

其他的应该大家都可以看懂,这个prompt的作用是什么呢,实际就是如果我们没有为name传参数,他就会给出一个提示

详解python的argpare和click模块小结

下面这个例子是完整的传参

详解python的argpare和click模块小结

4、常用参数

常用参数

default:设置命令行参数的默认值

help:参数说明

type:参数的类型,可以是string,int,float

prompt:当在命令行中没有输入相应的参数,会根据prompt提示用户输入

nargs:指定命令行参数接受的值的个数

a、测试一下nargs参数

@click.command()
@click.option('--post',nargs=2,help='Number of post')
def hello(post):
 print(post)

if __name__ == '__main__':
 hello()

测试结果

详解python的argpare和click模块小结

b、测试click.choice选项

@click.command()
@click.option('--hash',type=click.Choice(["md5","sha1"]),help='type of hash')
def hello(hash):
 print(hash)
if __name__ == '__main__':
 hello()

测试结果

详解python的argpare和click模块小结

c、如果使用命令行输入密码,则默认的情况是有很大的安全隐患的,因为输入密码的命令在history中,其他用户就可以通过命令的历史列表,拿到我们的密码,click可以为我们解决这个问题

@click.command()
@click.option('--pwd',prompt=True,hide_input=True,help='passwd of user',confirmation_prompt=True)
def hello(pwd):
 print(pwd)
if __name__ == '__main__':
 hello()

prompt:要设置为True

hide_input:要设置为True

confirmation_prompt:会自动为我们进行密码的二次验证

测试结果如下

错误的输入

详解python的argpare和click模块小结

正确的输入

详解python的argpare和click模块小结

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

Python 相关文章推荐
编写Python CGI脚本的教程
Jun 29 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
Python实现进程同步和通信的方法
Jan 02 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
Python常用配置文件ini、json、yaml读写总结
Jul 09 Python
linux安装python修改默认python版本方法
Mar 31 #Python
Django中使用Whoosh进行全文检索的方法
Mar 31 #Python
Python实现的爬取小说爬虫功能示例
Mar 30 #Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 #Python
Python函数装饰器常见使用方法实例详解
Mar 30 #Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 #Python
Python函数的参数常见分类与用法实例详解
Mar 30 #Python
You might like
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
python调用新浪微博API项目实践
2014/07/28 Python
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
python处理“
2019/06/10 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
Pytorch to(device)用法
2020/01/08 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
项目专员岗位职责
2013/12/04 职场文书
房产授权委托书范本
2014/09/22 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
使用Ajax实现进度条的绘制
2022/04/07 Javascript