脚本名称 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()
运行效果图