这篇文章将为大家详细讲解有关点击参数怎么在Python中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<强>一、前言强>
在概念上,点击把命令行分为3个组成:参数,选项和命令。
参数就是跟在命令后的除选项外的内容,比如git添加一个。txt中的一个。txt就是表示文件路径的参数
选项就是以-或开头的参数,比如- f,——文件
命令就是命令行的初衷了,比如git就是命令,而git中添加的添加则是git的子命令
<强>二、参数强>
2.1基本参数
基本参数就是通过位置里指定参数值。
比如,我们可以指定两个位置参数x和y,先添加的x位于第一个位置,后加入的y位于第二个位置。那么在命令行中输入1 2的时候,分别对应到的就是x和y:
@click.command () @click.argument (& # 39; x # 39;) @click.argument (& # 39; y # 39;) def 你好(x, y): 打印才能(x, y)
<强> 2.2参数类型强>
参数类型就是将参数值作为什么类型去解析,默认情况下是字符串类型。我们可以通过类型入参来指定参数类型。
点击支持的参数类型多种多样:
- <李>
str/点击。字符串表示字符串类型,这也是默认类型
李> <李>int/点击。INT表示整型
李> <李>/点击浮动。浮表示浮点型
李> <李>bool/点击。BOOL表示布尔型。很棒之处在于,它会识别表示真/假的字符。对于1,是的,y和真正的会转化为真的,0,不,n和假会转化为假
李> <李>点击。UUID表示UUID,会自动将参数转换为UUID。李UUID对象
> <李>点击。文件表示文件,会自动将参数转换为文件对象,并在命令行结束时自动关闭文件
李> <李>点击。路径表示路径
李> <李>点击。选择表示选择选项
李> <李>点击。IntRange表示范围选项
李>同argparse一样,点击也支持自定义类型,需要编写点击。ParamType的子类,并重载转换方法。
<强> 2.3文件参数强>
在基本参数的基础上,通过指定参数类型,我们就能构建出各类参数。
文件参数是非常常用的一类参数,通过type=点击。文件指定,它能正确处理所有Python版本的unicode和字节,使得处理文件十分方便。
@click.command () @click.argument(& # 39;输入# 39;,,type=click.File (& # 39; rb # 39;)), #,指定文件为二进制读 @click.argument(& # 39;输出# 39;,,type=click.File (& # 39; wb # 39;)), #,指定文件为二进制写 def inout(输入,输出): while 才能正确的: ,,,chunk =, input.read(1024), #,此时,input 为文件对象,每次读入,1024年,字节 ,,,if not 块: ,,,,,休息 ,,,output.write(块),#,此时,output 为文件对象,写入上步读入的内容
<强> 2.4文件路径参数强>
文件路径参数用来处理文件路径,可以对路径做是否存在等检查,通过type=点击。路径指定。不论文件名是unicode还是字节类型,获取到的参数类型都是unicode类型。
@click.command () @click.argument(& # 39;文件名# 39;,,type=click.Path(存在=True), #,要求给定路径存在,否则报的错 def 你好(文件名): click.echo才能(click.format_filename(文件名))
如果文件名是以——开的头,会被误认为是命令行选项,这个时候需要在参数前加上——和空格,比如
,美元python hello.py ——-foo.txt -foo.txt
<强> 2.5选择项参数强>
选择项参数用来限定参数内容,通过type=点击。选择指定。
比如,指定文件读取方式限制为只读和读写:
@click.command () @click.argument(& # 39;模式# 39;,,type=click.Choice((& # 39;只读# 39;,,& # 39;读写# 39;))) def 你好(模式): click.echo才能(模式)
<强> 2.6可变参数强>
可变参数用来定义一个参数可以有多个值,且能通过娜戈来定义值的个数,取得的参数的变量类型为元组。
若娜戈=N, N为一个数字,则要求该参数提供N个值。若N为1则接受提供无数量限制的参数,如:
@click.command () @click.argument (& # 39; foo # 39;,,娜戈=1) @click.argument(& # 39;酒吧# 39;,,娜戈=1) def 你好(foo, bar): 通过才能
如果要实现argparse中要求参数数量为1个或多个的功能,则指定娜戈=1且需要=True即可: