click模块解析命令行参数

安装

pip install click

操作步骤

1)使用@click.command()装饰一个函数,使之成为命令行接口
2)使用@click.option()等装饰函数,为其添加命令行选项等

案例

# click_demo.py
import click @click.command()
@click.option('--count', default=1, help='Number of greetings')
@click.option('--name', prompt='Your Name', help='Person of name')
def hello(count, name):
for x in range(count):
click.echo('Hello %s' % (name)) if __name__ == '__main__':
hello() >>> python click_demo.py --count=5 --name=liuwei

click模块中的相关函数

command   # 使函数成为命令行接口
option # 增加命令行选项
echo # 输出结果,使用echo进行输出时为了获得更好的兼容性
Choice # 只能取列表中给出的固定的值

option常用参数

default  # 设置命令行参数的默认值
help # 参数说明
type # 参数类型,可以时string/int/float等
prompt # 当在命令行中没有输入相应的参数时,会根据prompt提示用户输入
nargs # 指定命令行参数接收的值的个数

示例

# nargs用法
import click @click.command()
@click.option('--ops', nargs=2, type=float) # nargs表示参数限制为2个,type限制类型为浮点型
def findme(pos):
click.echo('%s / %s' % pos)
# Choice用法
import click @click.command()
@click.option('--hash-type', type=click.Choice(['md5', 'sha1']))
def digest(hash_type):
click.echo(hash_type)
# prompt 交互式输入信息
# hide_input 为True表示隐藏输入的内容
# confirmation_prompt 再一次进行交互,例如密码的二次输入验证
import click @click.command()
@click.option('--password', prompt=True, hide_input=True, confirmation_prompt=True)
def encrypt(password):
click.echo('Encrypting password to %s' % password.encode('utf-8'))

click模块解析命令行参数的更多相关文章

  1. optparse模块解析命令行参数的说明及优化

    一.关于解析命令行参数的方法 关于“解析命令行参数”的方法我们一般都会用到sys.argv跟optparse模块.关于sys.argv,网上有一篇非常优秀的博客已经介绍的很详细了,大家可以去这里参考: ...

  2. python解析命令行参数

    常常需要解析命令行参数,经常忘记,好烦,总结下来吧. 1.Python 中也可以所用 sys 的 sys.argv 来获取命令行参数: sys.argv 是命令行参数列表 参数个数:len(sys.a ...

  3. boost之program_options库,解析命令行参数、读取配置文件

    一.命令行解析 tprogram_options解析命令行参数示例代码: #include <iostream> using namespace std; #include <boo ...

  4. linux 中解析命令行参数(getopt_long用法)

    linux 中解析命令行参数(getopt_long用法) http://www.educity.cn/linux/518242.html 详细解析命令行的getopt_long()函数 http:/ ...

  5. C语言中使用库函数解析命令行参数

    在编写需要命令行参数的C程序的时候,往往我们需要先解析命令行参数,然后根据这些参数来启动我们的程序. C的库函数中提供了两个函数可以用来帮助我们解析命令行参数:getopt.getopt_long. ...

  6. Windows下解析命令行参数

    linux通常使用GNU C提供的函数getopt.getopt_long.getopt_long_only函数来解析命令行参数. 移植到Windows下 getopt.h #ifndef _GETO ...

  7. Python技法:用argparse模块解析命令行选项

    1. 用argparse模块解析命令行选项 我们在上一篇博客<Linux:可执行程序的Shell传参格式规范>中介绍了Linux系统Shell命令行下可执行程序应该遵守的传参规范(包括了各 ...

  8. 3.QT中QCommandLineParser和QCommandLineOption解析命令行参数

     1  新建项目 main.cpp #include <QCoreApplication> #include <QCommandLineParser> #include & ...

  9. 使用 Apache Commons CLI 解析命令行参数示例

    很好的输入参数解析方法 ,转载记录下 转载在: https://www.cnblogs.com/onmyway20xx/p/7346709.html Apache Commons CLI 简介 Apa ...

  10. Shell 参数(2) --解析命令行参数工具:getopts/getopt

    getopt 与 getopts 都是 Bash 中用来获取与分析命令行参数的工具,常用在 Shell 脚本中被用来分析脚本参数. 两者的比较 (1)getopts 是 Shell 内建命令,geto ...

随机推荐

  1. [转帖]Ipmitool跟OS下的ipmi模块之间的关系

    https://www.jianshu.com/p/71614d3288e8 OS下默认加载了ipmi的相关模块 注:此时OS下可以正常使用ipmitool命令访问本机的ipmi 设备. [root@ ...

  2. [转帖]Linux-文本处理三剑客awk详解+企业真实案例(变量、正则、条件判断、循环、数组、分析日志)

    https://developer.aliyun.com/article/885607?spm=a2c6h.24874632.expert-profile.313.7c46cfe9h5DxWK 简介: ...

  3. [转帖]OutOfMemoryError内存溢出相关的JVM参数

    原文在这里: OutOfMemoryError内存溢出相关的JVM参数 JVM提供了很多处理内存溢出的相关参数,本文主要来讲解下这些参数,当你遇到内存溢出的时候可能会对你非常有帮助,这些参数主要有: ...

  4. [转帖]Java 内存管理

    https://www.cnblogs.com/xiaojiesir/p/15590092.html   Java 内存模型简称 JMM,全名 Java Memory Model .Java 内存模型 ...

  5. 30岁程序媛求职路复盘:文转码+失业半年+PHP如何涨薪5K!?

    这篇文章来自一位群友的分享: 这篇文章写于下班路上,刚刚入职不久,我想再冲刺一下大厂,阳哥建议我坚持总结打卡,可以尝试写写博客. 那我就从这篇开始吧,希望开个好头! 上班的感觉真好 今天是入职的第二周 ...

  6. docker 镜像导出和导入(适用于内网无法拉镜像的问题)

    1.在外网将镜像从指定的仓库拉下来 docker pull consul 现在已将consul镜像拉到了可连外网的服务器  2.将镜像把包到指定的tar文件中 docker save consul:l ...

  7. minIO系列文章04---windows下安装及在.netcore使用

    一.minio下载与启动 下载后会有一个minio.exe文件,放到指定的目录 在该目录下运行:minio.exe server D:\minio\file  出现如下的提示代码启动动成功: 浏览器中 ...

  8. Vulkan学习苦旅03:零号显卡,启动!(选择物理设备VkPhysicalDevcie)

    随着近几年AI的迅速发展,GPU变得越来越抢手.然而,GPU的全称为Graphics Processing Unit, 从名字中就可以看出,GPU是为了处理图形而诞生的,后来才被应用到科学计算等领域中 ...

  9. Vulkan学习苦旅01:最初的相遇(学习路线、参考资料与环境配置)

    提示:博主本人也在努力学习Vulkan中,文中可能有写错的地方,敬请大家批评指正. 这个世界只有两种人:会Vulkan的和不会Vulkan的,大概不存在"只会一点"的中间状态.学习 ...

  10. Spring 与 Mybatis 中的 @Repository 与 @Mapper

    @Repository.@Service.@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean.如果使用@Repository则需要使用@MapperScan(&quo ...