命令行模块 Click

Zss 发表于:

命令行的方式运行,在外部输入参数来进行调用,可以使用sys.argv[]的方式来接收参数,不过有很多东西是需要自己去定义,逻辑也需要自己去编写的

使用Click就很方便

import click


@click.command()
@click.option("--name", default="li", help="your name")
@click.option("--age", default=26, help="your age")
def hello_world(name, age):
    click.echo(name)
    print(age)

hello_world()

运行方式为python test.py –name zww –age 18

接收两个参数,一个为名字一个为年纪,若无参数,则是用上面定义的默认参数default

 

使用group方法可以嵌套子命令,在first中使用second,或者third

import click
​
​
@click.group()
def first():
    print("hello world")
​
@click.command()
@click.option("--name", help="the name")
def second(name):
    print("this is second: {}".format(name))
​
@click.command()
def third():
    print("this is third")
​
first.add_command(second)
first.add_command(third)
​
first()
$ python test.py second --name hh
​
# 输出
hello world
this is second: hh

属性描述:

  • default:给命令行选项添加默认值
  • help:给命令行选项添加帮助信息
  • type:指定参数的数据类型,例如int、str、float
  • required:是否为必填选项,True为必填,False为非必填
  • prompt:在命令行提示用户输入对应选项的信息
  • nargs:指定命令行选项接收参数的个数,如果超过则会报错

方法描述:

  • command:用于装饰一个函数,使得该函数作为命令行的接口,例如上述装饰hello_world
  • option:用于装饰一个函数,主要功能是为命令行添加选项
  • echo:用于输出结果,由于print函数在2.x和3.x之间存在不同之处,为了更好的兼容性,因此提供了echo输出方法
  • Choice:输入为一个列表,列表中为选项可选择的值