Python脚本文件外部传递参数的处理方法
Admin 2022-07-29 群英技术资讯 876 次浏览
这篇文章主要讲解了“Python脚本文件外部传递参数的处理方法”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。我们写的 Python 脚本需要修改参数,当我们将脚步上传到服务器或者给不会编程的人用时,会比较不方便,如果直接可以在外部指定参数,会非常方便,今天介绍的就是 Python 外部指定参数的几种方法。
这种方法适用于修改一下文件中的内容,配合 Linux 命令非常方便,举一个例子,我们需要从一个 binlog 文件中找到该里面最大的事物,我们要配合 mysqldump 来做:
mysqlbinlog -v --base64-output=decode-row ./mysql-bin.000001 | python check_big_event.py
此时我们需要给脚步的参数就只有 binlog 文件路径,那就可以直接使用 sys 将 binlog 文件以流式(一行一行)传递给脚步,非常简单就可以实现,下方是示例脚本
Python 自带的接收外部参数的模块,用好以后也是非常的猴赛雷。下面是一个 MySQL 自动化部署脚步,需要指定的参数有三个,我们均可以使用 --参数名 方式来指定。
python MySQL_install.py --datadir=/data/mysql_db --basedir=/usr/local --path=mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
下方是使用实例,当不指定参数时,会打印出 help 方法。

下方是一个示例格式:

使用这种方法传递参数,我们就可以运行脚本时:
python args.py --path=xxx --log=xxx
优点非常多,指定参数没有数量限制,可以设置默认,兼容性 和 扩展性非常好,生产推荐使用该方法。
这种方法非常简单直接,不需要指定参数名,直接使用下标来取参数,请看下方演示:

运行结果:

指定参数时,使用空格隔开就可以,缺点是我们必须安装脚步顺序指定,如果脚本只有一个参数或者参数意义相同,可以用这种方法,参数较多不建议使用。
argv + argparse 好处就是可以让脚本得到非常好的封装,适用于脚步参数比较多的时候。下方是一个演示:
import sys
import argparse
def parse_args():
"""parse args for test"""
parser = argparse.ArgumentParser(add_help=False)
connect_setting = parser.add_argument_group('connect setting')
connect_setting.add_argument('-h', '--host', dest='host', type=str,
help='Host the MySQL database server located', default='127.0.0.1')
connect_setting.add_argument('-u', '--user', dest='user', type=str,
help='MySQL Username to log in as', default='root')
connect_setting.add_argument('-p', '--password', dest='password', type=str, nargs='*',
help='MySQL Password to use', default='')
connect_setting.add_argument('-P', '--port', dest='port', type=int,
help='MySQL port to use', default=3306)
return parser
def command_line_args(args):
need_print_help = False if args else True
parser = parse_args()
args = parser.parse_args(args)
if args.help or need_print_help:
parser.print_help()
sys.exit(1)
return args
if __name__ == '__main__':
args = command_line_args(sys.argv[1:])
print(args.host)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
map(func,iterable),其中func为函数名,可为lambda匿名函数,iterable为可迭代对象。此函数会将可迭代对象中的每一位元素作为参数传递到func中,并将func的计算结果加入到新列表内,map()返回的是一个包含所有结果的新列表
pandas中的agg函数pandas详解 聚合运算agg()1. 创建DataFrame对象2. 单列聚合3. 多列聚合4. 多种聚合运算5. 多种聚合运算并更改列名6. 不同的列运用不同的聚合函数7.
在本文中,我们将介绍10个示例,以掌握如何使用用于Python的Seaborn库创建图表。
这篇文章主要介绍了分别利用reinhard算法和welsh算法实现图像的颜色迁移,并对二者算法的效果进行了对比,感兴趣的小伙伴可以了解一下
这篇文章主要给大家分享python的glob模块的内容,而glob模块是一个文件操作相关模块,用它可以查找符合要求的文件,支持通配符操作,小编觉得比较实用,因此分享给大家做个参考,感兴趣的朋友就跟随小编一起来学习一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008