在平时的撰写Python脚本制作的过程当中,我们通常需要根据查询参数传到某些自变量基本参数,使新项目应用更加灵便便捷。本文列举了搭建Python查询参数的4种普遍方法,所需要的可以了解一下小伙伴们好,在平时的撰写Python脚本制作的过程当中,我们通常需要根据查询参数传到某些自变量基本参数,使新项目应用更加灵便便捷
本文我们将列举出搭建Python查询参数的4种普遍方法
分别是:
内嵌sys.argv控制模块
内嵌argparse控制模块
内嵌getopt模块
第三方平台依赖库click
1.sys.argv
搭建查询参数非常简单、普遍的方法是运用内嵌的「sys.argv」控制模块
它是把基本参数以一种规范有序目录传到,因而在使用过程中传参次序务必固定不动
因而,这种方法适用基本参数数量少且情景固定工程中
importsys if__name__=='__main__': #获得参数列表 #留意:sys.argv[0]意味着第一位基本参数,即:脚本制作名字「1_sys.argv.py」 #别的参数列表 args=sys.argv[1:] #基本参数数量 args_length=len(sys.argv)ifsys.argvelse0 print("清除运作主文件基本参数,别的参数列表为:",args) print("基本参数数量:",args_length) #应用 #python31_sys.argv.pyarg1arg2 #清除运作主文件基本参数,别的参数列表为:[arg1,arg1] #基本参数数量:3
需注意,在脚本制作中以「sys.argv」获得的参数列表中,第一位基本参数意味着脚本制作主文件目录
2.argparse
内嵌的argparse控制模块能够比较轻松地编写出友善的查询参数脚本制作,而且它会一键生成协助操作手册,在客户给程序流程传到失效基本参数时可以抛出去清楚的错误报告
官方文档
使用这些搭建查询参数包括3个阶段:
搭建基本参数分析对象添加基本参数加上基本参数分析基本参数
1.搭建argv分析总体目标
importargparse ... #建立一个argv分析总体目标 parser=argparse.ArgumentParser(description='argv') ...
2.加上argv
务必注意的是,--arg1用以特定主要参数名字,-a1意味着dest总体目标变量类型(缩写)
... #设定3个主要参数 #主要参数1:arg1,整形,非必要调用方法 #主要参数2:arg2,字符串数组,非必要调用方法,包括初始值「xag」 #主要参数3:arg3,字符串类型,务必传到的主要参数 parser.add_argument('--arg1','-a1',type=int,help='主要参数1,非必要主要参数') parser.add_argument('--arg2','-a2',type=str,help='主要参数2,非必要主要参数,包括初始值',default='xag') parser.add_argument('--arg3','-a3',type=str,help='主要参数3,务必主要参数',required=True) ...
3.分析出变量值
... #分析主要参数,获得每一个argv(Namespace),随后变为词典 args=vars(parser.parse_args()) #获得全部主要参数 print("全部argv为:") forkeyinargs: print(f"argv名:{key},变量值:{args[key]}") ... 使用时,大家就可以用「-h/--help」指令主要参数查询帮助文件 #查询argv帮助文件 python32_argparse.py--help #或 python32_argparse.py-h 上边使用的3个主要参数,参数arg1、arg2非必要传值,arg3务必传值,此外参数arg2特定了初始值 #参数arg3务必,参数arg1和参数arg2非必要,在其中参数arg2设置权限初始值 #调用方法arg3 #python32_argparse.py--arg3123 #python32_argparse.py-a3123 xingagxingagdeMacBook-Proargs%python32_argparse.py-a3123 全部argv为: argv名:arg1,变量值:None argv名:arg2,变量值:xag argv名:arg3,变量值:123 #调用方法arg1、arg3 xingagxingagdeMacBook-Proargs%python32_argparse.py-a1111-a3123 全部argv为: argv名:arg1,变量值:111 argv名:arg2,变量值:xag argv名:arg3,变量值:123 #调用方法arg1、arg2、arg3 xingagxingagdeMacBook-Proargs%python32_argparse.py-a1111-a2222-a3123 全部argv为: argv名:arg1,变量值:111 argv名:arg2,变量值:222 argv名:arg3,变量值:123
3.getopt
getopt是Python中的内嵌标准模块,需要结合sys.argv控制模块,立即分析脚本运行时主要参数
应用文件格式:getopt(args,shortopts,longopts=[])
在其中
args
参数列表,能通过sys.argv获得,可以参考一下上边
shortopts短主要参数所组成的字符串数组
界定短主要参数,假如主要参数有值,必须要在短主要参数后增加1个「:」标记
传参使用方法:-n23
longopts长参数列表
界定长参数列表时,假如某一主要参数有值,必须要在短主要参数后增加1个「=」标记
传参使用方法:–port8080
这儿以传到数据库服务器主要参数为例子(主要参数包括ip、登录名、登陆密码、数据库系统名字)进行介绍
fromgetoptimportgetopt importsys #获取参数 #sys.argv[1:]:获得除脚本制作文件夹名称以外全部argv #opts:存在全部选择项以及输入值的数组目录 #args:清除有价值的键入之后剩余部分 opts,args=getopt(sys.argv[1:],'i:u:p:d:',['ip=','user=','pwd=','db=']) #获得变量值 #短主要参数 #python34_getopt.py-i127.0.0.1-uroot-p123456-dmysqldb #长主要参数 #python34_getopt.py--ip127.0.0.1-uroot-p123456-dmysqldb ip_pre=[item[1]foriteminoptsifitem[0]in('-i','--ip')] ip=ip_pre[0]iflen(ip_pre)>0elseNone print("主要参数ip:",ip) user_pre=[item[1]foriteminoptsifitem[0]in('-u','--user')] user=user_pre[0]iflen(user_pre)>0elseNone print("主要参数user:",user) pwd_pre=[item[1]foriteminoptsifitem[0]in('-p','--pwd')] pwd=pwd_pre[0]iflen(pwd_pre)>0elseNone print("主要参数pwd:",pwd) db_pre=[item[1]foriteminoptsifitem[0]in('-d','--db')] db=db_pre[0]iflen(db_pre)>0elseNone print("主要参数db:",db) 在运行脚本时,我们能运用「短主要参数」或「长主要参数」的方式进行传送 #检测 #短主要参数 python34_getopt.py-i127.0.0.1-uroot-p123456-dmysqldb #长主要参数 python34_getopt.py--ip127.0.0.1--userroot--pwd123456--dbmysqldb
4.click
click作为第三方依赖库,它为命令行工具封装了大量的方法,可以非常方便实现命令行参数
项目地址
首先,我们需要安装依赖库click
import click #安装依赖 #pip3 install-U click click.command() click.option('--arg1',default='111',help='参数arg1,默认值为「111」') click.option('--arg2',type=int,help='参数arg2') click.option('--arg3',type=str,help='参数arg3') def start(arg1,arg2,arg3): """ 基于参数arg1、参数arg2、参数arg3运行项目 :param arg1: :param arg2: :param arg3: :return: """ print("参数arg1值为:",arg1) print("参数arg2值为:",arg2) print("参数arg3值为:",arg3) if __name__=='__main__': start() 然后,在主运行函数上通过装饰器配置参数即可 比如,上面就定义了3个命令行参数arg1、arg2、arg3,并设置了参数的类型及默认值 最后,在运行脚本时只需要按参数设定传递对应的值即可 #不包含参数 xingag xingagdeMacBook-Pro args%python3 3_click.py 参数arg1值为:111 参数arg2值为:None 参数arg3值为:None #包含参数arg1 xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1 参数arg1值为:test1 参数arg2值为:None 参数arg3值为:None #包含参数arg1、arg2 #注意:arg2的参数类型为整形,传入的参数必须能转为整形,否则会报错 xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1--arg2 222 参数arg1值为:test1 参数arg2值为:222 参数arg3值为:None #包含参数arg1、arg2、arg3 xingag xingagdeMacBook-Pro args%python3 3_click.py--arg1 test1--arg2 222--arg3 test3 参数arg1值为:test1 参数arg2值为:222 参数arg3值为:test3
综上所述,这篇文章就给大家介绍到这里了。希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129076.html
在平时的撰写Python脚本制作的过程当中,我们通常需要根据查询参数传到某些自变量主要参数,使新项目应用更加灵便便捷。本文列举了搭建Python查询参数的4种普遍方法,所需要的可以了解一下 小伙伴们好,在平时的撰写Python脚本制作的过程当中,我们通常需要根据查询参数传到某些自变量主要参数,使新项目应用更加灵便便捷 本文我们将列举出搭建Python查询参数的4种普遍方法 分别是: 内...
摘要:如果语句中使用了子查询集合操作临时表等情况,会给列带来很大的复杂性。会递归执行这些子查询,把结果放在临时表里。查询优化器从中所选择使用的索引。该字段显示了查询优化器通过系统收集的统计信息估算出来的结果集记录条数。 引言 优化SQL,是DBA常见的工作之一。如何高效、快速地优化一条语句,是每个DBA经常要面对的一个问题。在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤。然...
摘要:最近在阅读微型框架的源码,发现了中有一个既是装饰器类又是描述符的有趣实现。所以第三版的代码可以这样写第三版的代码没有使用装饰器,而是使用了描述符这个技巧。更大的问题来自如何将描述符与装饰器结合起来,因为是一个类而不是方法。 最近在阅读Python微型Web框架Bottle的源码,发现了Bottle中有一个既是装饰器类又是描述符的有趣实现。刚好这两个点是Python比较的难理解,又混合在...
阅读 909·2023-01-14 11:38
阅读 876·2023-01-14 11:04
阅读 739·2023-01-14 10:48
阅读 1979·2023-01-14 10:34
阅读 941·2023-01-14 10:24
阅读 818·2023-01-14 10:18
阅读 498·2023-01-14 10:09
阅读 571·2023-01-14 10:02