• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python脚本文件外部传递参数的处理方法

    前言

    我们写的 Python 脚本需要修改参数,当我们将脚步上传到服务器或者给不会编程的人用时,会比较不方便,如果直接可以在外部指定参数,会非常方便,今天介绍的就是 Python 外部指定参数的几种方法。

    一、流文本处理

    这种方法适用于修改一下文件中的内容,配合 Linux 命令非常方便,举一个例子,我们需要从一个 binlog 文件中找到该里面最大的事物,我们要配合 mysqldump 来做:

    mysqlbinlog  -v --base64-output=decode-row ./mysql-bin.000001 | python check_big_event.py

    此时我们需要给脚步的参数就只有 binlog 文件路径,那就可以直接使用 sys 将 binlog 文件以流式(一行一行)传递给脚步,非常简单就可以实现,下方是示例脚本👇

    二、argparse 模块

    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 列表

    这种方法非常简单直接,不需要指定参数名,直接使用下标来取参数,请看下方演示:

    运行结果:

    指定参数时,使用空格隔开就可以,缺点是我们必须安装脚步顺序指定,如果脚本只有一个参数或者参数意义相同,可以用这种方法,参数较多不建议使用。

    四、argv + argparse

    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)

    以上就是Python脚本文件外部传递参数的处理方法的详细内容,更多关于Python脚本外部传递参数的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • Jmeter调用Python脚本实现参数互相传递的实现
    • java 直接调用python脚本,并传递参数代码实例
    • python 类之间的参数传递方式
    • Python进程,多进程,获取进程id,给子进程传递参数操作示例
    • Python传递参数的多种方式(小结)
    上一篇:pytorch LayerNorm参数的用法及计算过程
    下一篇:Python实现网络自动化eNSP
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python脚本文件外部传递参数的处理方法 Python,脚本,文件,外部,传递,