【Python】读取MySQL 配置文件的脚本

记录一个读取my.cnf配置的脚本,可以基于该函数做一些mysql 后端运维工作。各位可以基于自己的需求进行修改。

脚本名称 getcnf.py

import sys 

import os

def read_cnf(cnf_path):

        assert cnf_path is not None and os.path.exists(cnf_path)

        cnf_dict = {}

        cur_section = None

        with open(cnf_path) as cnf_reader:

            for line in cnf_reader.readlines():

                line = ''.join(line.split())

                if len(line) <= 0 or '#' == line[0]:

                    continue

                if '[' == line[0] and ']' == line[-1]:

                    cur_section = line[len('['):len(line) - 1]

                    if cur_section not in cnf_dict:

                        cnf_dict[cur_section] = {}

                elif '=' in line and line.count('=') == 1:

                    if cur_section is None:

                        LOGGER.warning('cur_section is None')

                        continue

                    tokens = line.split('=')

                    key = tokens[0].replace('"', '').replace("'", '')

                    value = tokens[1].replace('"', '').replace("'", "")

                    cnf_dict[cur_section][key] = value

        return cnf_dict

def main():

    cnf_path="/u01/my3353/my.cnf"

    mycnf = read_cnf(cnf_path)

    print mycnf['mysqld']['tmpdir']

if __name__ == '__main__':

    main()

运行效果图

时间: 2024-08-01 19:03:04

【Python】读取MySQL 配置文件的脚本的相关文章

python-Python 读取MYSQL数据并插入到CSV文件相应位置

问题描述 Python 读取MYSQL数据并插入到CSV文件相应位置 数据库有一张表,除时间以外,每个字段都有可能重复(因为是按照系统时间,自动获取的网页数据现在我想做一张csv表,表的列名是时间字段(跟据数据库时间自增的),每行开头是名称(数据库存在的,只不过是去重后取出的)那么现在问题来了,如何按照时间名称从数据库获取数据填入相应的位置. 解决方案 你直接用对应的sql语句查询出符合你要求的数据,然后再写入CSV文件. 解决方案二: MySQL 直接读取csv文件数据到表中python读取c

Python读取ini文件、操作mysql、发送邮件实例_python

我是闲的没事干,2014过的太浮夸了,博客也没写几篇,哎~~~ 用这篇来记录即将逝去的2014 python对各种数据库的各种操作满大街都是,不过,我还是喜欢我这种风格的,涉及到其它操作,不过重点还是对数据库的操作.呵~~ Python操作Mysql 首先,我习惯将配置信息写到配置文件,这样修改时可以不用源代码,然后再写通用的函数供调用 新建一个配置文件,就命名为conf.ini,可以写各种配置信息,不过都指明节点(文件格式要求还是较严格的): 复制代码 代码如下: [app_info] DAT

Python连接mysql数据库

 首先你要做的还是下载相应的模块并且安装啦,下载地址自己搜,网上有很多,安装的话也很好办,安装之后python的安装目录下的Lib文件夹下的site-packages文件夹下的MySQLdb文件夹,这之中存放的便是该模块的定义.准备工作做好之后我们需要在源码中import MySQLdb 数据库的连接: 模块引入之后我们就需要和数据库进行连接了,实例代码如下: db = MySQLdb.connect("localhost","root","123456&

python连接MySQL、MongoDB、Redis、memcache等数据库的方法_python

用Python写脚本也有一段时间了,经常操作数据库(MySQL),现在就整理下对各类数据库的操作,如后面有新的参数会补进来,慢慢完善. 一,python 操作 MySQL:详情见:[apt-get install python-mysqldb] 复制代码 代码如下: #!/bin/env python# -*- encoding: utf-8 -*-#-------------------------------------------------------------------------

python连接MySQL数据库方法详解

python连接mysql教程数据库教程方法详解 host,连接的数据库服务器主机名,默认为本地主机(localhost).           user,连接数据库的用户名,默认为当前用户.         passwd,连接密码,没有默认值.         db,连接的数据库名,没有默认值.         conv,将文字映射到python类型的字典.默认为 mysqldb.converters.conversions         cursorclass,cursor()使用的种类,

python sqlobject(mysql)中文乱码解决方法_python

UnicodeEncodeError: 'latin-1' codec can't encode characters in position: 找了一天终于搞明白了,默认情况下,mysql连接的编码是latin-1,你需要指定使用什么编码方式: connectionForURI(mysql://user:password@localhost:3306/eflow?use_unicode=1&charset=utf8) Python mysql 中文乱码 的解决方法,有需要的朋友不妨看看. 先来

整理python连接MySQL/MongoDB/Redis/memcache数据库教程

如何整合redis mongodb mysql 1.业务系统的关联关系用mysql组织2.缓存数据用memcached.redis存取3.大文本数据放进mongodb存取中4.数据统计计数增加阀值功能 用mysql将memcached.redis.mongodb三者结合起来, 根据实际业务需要看一下哪些适合memcached.redis缓存存取,哪些适合mongodb存取. 核心架构: 1).应用系统框架架构2).数据库系统业务架构 是影响项目成功失败的关键. 一,python 操作 MySQL

python操作mysql数据库实现增删改查

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载不同的DB API模块,例如你需要

python利用mysql管理大数据集方便吗?

问题描述 python利用mysql管理大数据集方便吗? 使用python处理数据的时候生成的大批量的List数据集怎样保存比较方便呢?就是退出python后下次再进入python时不用再从外部文件重新读取数据集--因为我的数据量实在是太大,每次打开就再读一遍实在是太耗时间--所以我想用msqldb模块管理数据,不知道在数据存取.查询方面方不方便呢?有没有好的相关教程推荐的?谢谢啦 解决方案 你要是真的很大,可以考虑hive来做mysql的映射啊