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. JVM内存初步学习

    JVM内存初步学习   最近在学习容器内的JVM运行, 简单总结了下学习结果, 但是感觉还是分不清楚很多地方: 同事帮忙进行了 native memory的监控, 主要信息简要如下: jvm刚运行起来 ...

  2. 同步存储读取vuex中store中的值

    main.js import store from "./store"; Vue.prototype.$store = store; 在 store中的index.js中 impo ...

  3. Windows 10 关闭搜索栏中“热门搜索”的显示。

    Windows 10 关闭搜索栏中"热门搜索"的显示. 任务栏取消"显示搜索突出显示"的设置可能无法取消"热门搜索"的显示, 这就需要您尝试 ...

  4. SqlSugar跨库查询/多库查询

    一.跨库方式1:跨库导航 (5.1.3.24) 优点1:支持跨服务器,支持跨数据库品种, 支持任何类型数据库 优点2:   超级强大的性能,能达到本库联表性能 缺点:不支持子表过滤主表 (方案有ToL ...

  5. 英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑

    英伟达系列显卡大解析B100.H200.L40S.A100.A800.H100.H800.V100如何选择,含架构技术和性能对比带你解决疑惑 近期,AIGC领域呈现出一片繁荣景象,其背后离不开强大算力 ...

  6. C/C++ 动态解密释放ShellCode

    今天在复习<加密与解密>时,在软件保护这一章中有一个代码与数据结合的案例,其原理是将代码段中的代码进行xor异或加密处理以后回写到原始位置,当程序运行后将此处的内容动态的进行解密,解密后回 ...

  7. x64dbg 实现插件Socket反向通信

    编写一个带有socket通信功能的插件,x64dbg运行后,用户点击链接按钮可直接连接到外部的python中,python作为服务端,当x64dbg内部出现某个事件后,自动将消息推送到外部python ...

  8. KB0002.对DoraCloud的桌面模板系统盘进行扩容

    KB0002.对DoraCloud的桌面模板系统盘进行扩容 DoraCloud的桌面是根据桌面模板创建的.桌面模板包含了系统盘.有时系统盘的空间不满足需求,就需要对系统盘大小进行调整. 我们以Hype ...

  9. Mygin之错误恢复Recover中间件

    本篇是mygin这个系列的最后一篇.如果想自己动手实现一个类似Gin的Web框架,建议从 mgin第一篇开始, 总代码行数有效行数只有600多行 github源码 mygin 目的 实现错误处理机制 ...

  10. Python脚本之批量复制文件并同时支持重命名

    import os import shutil import time start_time = time.time() # 需要被复制的文件夹 old_path = r'C:\old_dir' ne ...