python模块使用方法(详解python的argpare和click模块小结)
python模块使用方法
详解python的argpare和click模块小结一、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) |
4、最后我们测试一下这个模块
a、测试 -h选项,这里-h和--help的效果是一样的
b、测试--v选项和--version选项
c、测试一下输入的正确的参数
二、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() |
其他的应该大家都可以看懂,这个prompt的作用是什么呢,实际就是如果我们没有为name传参数,他就会给出一个提示
下面这个例子是完整的传参
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() |
测试结果
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() |
测试结果
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:会自动为我们进行密码的二次验证
测试结果如下
错误的输入
正确的输入
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:http://www.cnblogs.com/bainianminguo/p/10629785.html
- python环境怎么安装pip(python2.7 安装pip的方法步骤管用)
- python表格导出为图片(python生成带有表格的图片实例)
- python网络爬虫案例实战(python爬取cnvd漏洞库信息的实例)
- python使用django搭建简单网页(Python后台开发Django的教程详解启动)
- python爬虫模块教程(Python爬虫之UserAgent的使用实例)
- python网页自动化selenium(python利用selenium进行浏览器爬虫)
- python的基本函数及用法(Python3.6.x中内置函数总结及讲解)
- python画佩奇(啥是佩奇?使用Python自动绘画小猪佩奇的代码实例)
- python与气象(使用Python和Prometheus跟踪天气的使用方法)
- python 提取微信消息(python实现文件助手中查看微信撤回消息)
- python的opencv图片识别(OpenCV-Python 摄像头实时检测人脸代码实例)
- 怎样在python中散点图(python使用Plotly绘图工具绘制散点图、线形图)
- python使用pandas数据分析系列(python使用pandas处理大数据节省内存技巧推荐)
- pythonredis使用场景(python redis 删除key脚本的实例)
- python变量指向讲解(详解python中init方法和随机数方法)
- python写一个二叉树(Python二叉搜索树与双向链表转换算法示例)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
- 鱿鱼炒蒜苔不是黑暗料理,这样做清香扑鼻,鲜美脆嫩,开胃又下饭(鱿鱼炒蒜苔不是黑暗料理)
- 蒜苔炒鱿鱼(蒜苔炒鱿鱼)
- 远离 五毛食品 洛阳80后妈妈发明的 飞行棋 成校园爆款 玩具(远离五毛食品)
- 失传的古代飞行棋游戏 六博(失传的古代飞行棋游戏)
- 感冒要吃什么药(猫咪感冒要吃什么药)
热门推荐
- css 翻动效果(CSS实现全屏切换效果的示例代码)
- sqlserver自增长id重置(SQL server 自增ID--序号自动增加的字段操作)
- apache协议内容(Apache中rewrite伪静态规则介绍)
- web前端开发的规范
- xml属性和子元素的选择
- 无法打开物理文件 操作系统错误 5:拒绝访问
- sqlcount函数转化为数值型(SQL判断是否"存在",还在用 count 操作?很耗时的!)
- mysql的三种模式(详解 MySQL的FreeList机制)
- docker同步宿主机配置(docker容器间跨宿主机通信-基于overlay的实现方法)
- ASP.NET URLRewriter伪静态
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9