click包一般用于带参数的python脚本运行,是通过装饰器来把一个函数方法装饰成命令行接口的,
常见的装饰器有:
1. @click.command():将其下面的函数方法装饰为命令行接口选项,(我们称为一个command实例或子命令),实现在命令行运行时可选
2. @click.option(’--xxx’, '-x', default=1,prompt=‘Your name’,type=int,nargs=1,help=‘Number of greetings)
    参数释义:--xxx:即下列函数的形参
                      -x:形参在命令行里的缩写
                      default:默认值
                      prompt:若未输入,就提示该内容
                      type:参数类型
                      nargs:指定命令行参数接收的值的个数, -1 表示可以接收多个参数
                      help:编辑该参数的帮助

例:

import click@click.command() # 将函数装饰为命令
@click.option('--n', '-nn', default=1) # 设置函数执行时的参数
def dots_n(n):click.echo('.' * n)if __name__ == '__main__':dots_n()

3. @click.group():装饰器把主函数装饰为可以拥有多个子命令的 Group 对象,即脚本文件里有多个函数方法(可装饰为command实例),不同的 command 实例可以关联到group中。group下绑定的命令就成为了它的子命令。

例:

import click
@click.group() # 将主函数封装到一个group对象
def main():pass
@main.command() # 将函数装饰为命令,并将该命令自动关联到main这一group对象下,成为子命令
@click.option('--n', '-nn', default=1) # 设置函数执行时的参数
def dots_n(n):click.echo('.' * n)@main.command()
@click.option('--name', '-a', default='ZJW', type=str, prompt='Your Name')
def your_name(name):click.echo(name)
if __name__ == '__main__':main()

这里,不使用'main.command()'自动关联,可以使用main.add_command()手动关联,例:

import click
@click.group() # 将main函数装饰为一个group对象
def main():pass
@click.command() # 将下列函数装饰为命令
@click.option('--n', '-nn', default=1) # 设置函数参数
def dots_n(n):click.echo('.' * n)@click.command()
@click.option('--a', '-aa', default='ZJW', type=str, prompt='Your Name')
def your_name(a):click.echo(a)
main.add_command(dots_n) # 将命令关联到main这一group对象下
main.add_command(your_name)
if __name__ == '__main__':main()

运行:

python test.py dots-n --n 5 或
python test.py dots-n -n 5
python test.py your-name --name zjw 或
python test.py your-name -a zjw

这里值得注意的时,函数名里的下划线‘_’要在输入时变为‘-’,否则函数会报参数不对的错误。
并且我们如果不输入command的话,会报下列错误:

Usage: test.py [OPTIONS] COMMAND [ARGS]...Options:--help  Show this message and exit.Commands:dots-nyour-name

参考:https://www.cnblogs.com/alexkn/p/6980400.html

python 之 click 包,设置命令行参数相关推荐

  1. 【Python】 配置解析ConfigParser 命令行参数解析optparser

    ConfigParser ConfigParser包装了配置文件的读取和写入,使得python程序可以更加轻松操作配置文件了.这里的配置文件是指.ini的那种文件,基本格式如下 [section_a] ...

  2. python中config命令_【Python】 配置解析ConfigParser 命令行参数解析optparser

    ConfigParser ConfigParser包装了配置文件的读取和写入,使得python程序可以更加轻松操作配置文件了.这里的配置文件是指.ini的那种文件,基本格式如下 [section_a] ...

  3. golang flag包(命令行参数解析)

    1.1 使用示例: 我们以 nginx 为例,执行 nginx -h,输出如下: nginx version: nginx/1.10.0 Usage: nginx [-?hvVtTq] [-s sig ...

  4. Python中最好用的命令行参数解析工具

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...

  5. python 命令行参数-Python 中最好用的命令行参数解析工具

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要一个命令行参数解析的 ...

  6. java怎么设置命令行参数_java 命令行参数

    -Xmixed 混合模式执行 (默认) -Xint 仅解释模式执行 -Xbootclasspath: 设置搜索路径以引导类和资源 -Xbootclasspath/a: 附加在引导类路径末尾 -Xboo ...

  7. ​【Python】Python中好用的命令行参数解析模块

    大家好,我是小喵! 关注和星标『AI算法小喵』,和小喵一起学习AI算法!

  8. python执行脚本时的命令行选项_Python 处理脚本的命令行参数(二):使用click

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

  9. go(flag+cobra)——python(argpase模块)——命令行参数

    目录 python sys.argv argparse模块 ArgumentParse类 add_argument()常用参数 Q&A 终端打印中文帮助信息出现乱码 Go os.Args fl ...

最新文章

  1. 请教提高代码编写组织能力代码优化、精明
  2. python面试-python面试问题集锦
  3. MicroPython支持图形化编辑了:Python Editor带你轻松玩转MicroPython
  4. 成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时)
  5. 机器学习导论(张志华):条件期望
  6. 使用ImpromptuInterface反射方便的创建自定义DfaGraphWriter
  7. 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
  8. CVPR | BASNet:边缘感知的显著性物体检测
  9. JavaScript JSON 对象使用详解、JSON. parse()、JSON. stringify()
  10. linux重新识别逻辑卷,教你认识LVM逻辑卷
  11. 创维智能网络机顶盒e950_拆创维E950机顶盒
  12. java文字版格斗游戏
  13. WireShark抓包原理解析及抓包实战教程
  14. 如何把一个eclipse安装包放到eclipse中
  15. signature=bf81fe7f4f17ad23bbd6aa8f365d3bc7,【迅雷高端用户入门手册】(第七集)简单分析迅雷崩溃...
  16. python画人脸代码_10行代码实现python人脸识别
  17. 面向需求编程才是常态,聊聊我的经历
  18. 如何通过U盘给笔记本安装Ubuntu系统
  19. JetBrains PyCharm 设置显示行号
  20. Liunx之网络编程

热门文章

  1. linux centos7 安装redis
  2. win8 -telnet安装
  3. C# 对Outlook联系人的增、删、查
  4. 最快最新最详细的IT电子书
  5. 对DotNet分布式应用搭建的考虑(引用)
  6. App设计灵感之十二组精美的租车类App设计案例
  7. 2020\Simulation_2\3.单词重排
  8. 337. House Robber III 打家劫舍 III
  9. 数据库开发——MySQL——慢查询优化
  10. 2017年第八届蓝桥杯 —— 训练题目 —— 空瓶换汽水