聊聊 Python 命令行参数化的几种方式!

网站建设4年前发布
64 0 0

202303052114361973e6d20be5c5d6c85132c36d355cf78a3bb8228,在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项目使用更加的灵活方便。,本篇文章我将罗列出构建 Python 命令行参数的四种常见方式。,它们分别是:,构建命令行参数最简单、常见的方式是利用内置的「 sys.argv 」模块。,它是将参数以一个有序的列表传入,所以在使用时传参顺序必须固定。,因此,这种方式适用于参数个数少且场景固定的项目中:,需要注意的是,在脚本中通过「 sys.argv 」获取的参数列表中,第一个参数代表脚本主文件名称。,内置的 argparse 模块可以非常轻松地编写出友好的命令行参数脚本,并且它能自动生成帮助使用手册,在用户给程序传入无效参数时能抛出清晰的错误信息。,官方文档:https://docs.python.org/zh-cn/3.10/library/argparse.html,使用它构建命令行参数包含 3 个步骤:,(1) 构建命令行参数解析对象,(2) 添加命令行参数,需要指出的是,--arg1 用于指定参数名称,-a1 代表 dest 目标变量值(简写),(3) 解析出参数值,使用的时候,我们就可以通过「 -h / --help 」命令参数查看帮助文档:,上面添加的 3 个参数,参数 arg1、arg2 非必须传值,arg3 必须传值,另外参数 arg2 指定了默认值:,getopt 是 Python 中一个内置标准模块,可以结合 sys.argv 模块,直接解析脚本运行时参数。,使用格式:getopt(args,shortopts,longopts = [])。,其中:,(1) args:参数列表,可以通过 sys.argv 获取,可以参考上面,(2) shortopts 短参数组成的字符串:,(3) longopts 长参数列表,这里以传入数据库连接参数为例(参数包含 ip、用户名、密码、数据库名称)进行讲解:,在运行脚本时,我们可以利用「 短参数 」或「 长参数 」形式进行传递:,click 作为第三方依赖库,它为命令行工具封装了大量的方法,可以非常方便实现命令行参数。,项目地址:https://pypi.org/project/click/。,首先,我们需要安装依赖库 click:,然后,在主运行函数上通过装饰器配置参数即可。,比如,上面就定义了 3 个命令行参数 arg1、arg2、arg3,并设置了参数的类型及默认值。,最后,在运行脚本时只需要按参数设定传递对应的值即可。,上面通过实例讲解了实现 Python 命令行参数常见的 4 种方式,对于一些简单自用且不那么正规的场景,个人觉得可以考虑用 sys.argv 模块快速构建命令行参数;而对一些参数多、面向用户的正式生产环境,建议利用 argparse 模块或 click 依赖来创建命令行参数

© 版权声明

相关文章