python中的ConfigParser模块可以便利的处理配置文件例如下图:
# HOST为第一个节点;
[HOST]
# HOST1为第一个节点中的key值,等号后面时对应的value值;
HOST1 = 172.25.254.1:root:123
HOST2 = 172.25.254.2:root:123
HOST3 = 172.25.254.3:root:123
# SCRIPTS为第二个节点;
[SCRIPTS]
SCRIPTS1 = scripts/test1.sh
SCRIPTS2 = scripts/test2.sh
# UPLOADS_REMOTE_DIR为第三个节点;
[UPLOADS_REMOTE_DIR]
REMOTE_DIR = /mnt/upload/
# DOWNLOADS_REMOTE_DIR为第四个节点;
[DOWNLOADS_REMOTE_DIR]
REMOTE_DIR = /mnt/download/
# db为第五个节点;
[db]
db_port = 3306
db_user = root
db_host = 127.0.0.1
db_pass = westos
这个模块对于开发的程序可配置化来说非常的实用
#coding=utf-8
import ConfigParser
def load_envi():
config = ConfigParser.RawConfigParser() # 创建对象
config.read('static/cmdb.info') # 读取配置文件,如果配置文件不存在则创建
# 查看
sects = config.sections() # 获取所有的节点名称
print sects
options = config.options(sects[0]) # 获取指定节点的所有key
return options[0:4]
def load_appname():
config = ConfigParser.RawConfigParser() # 创建对象
config.read('static/cmdb.info') # 读取配置文件,如果配置文件不存在则创建
# 查看
sects = config.sections() # 获取所有的节点名称
return sects
def load_ip_info(appname='acct-web', envi='uat_ip_zj'):
config = ConfigParser.RawConfigParser() # 创建对象
config.read('static/cmdb.info') # 读取配置文件,如果配置文件不存在则创建
# 查看
sects = config.sections() # 获取所有的节点名称
print sects
options = config.options(appname) # 获取指定节点的所有key
print options
item_list = config.items(appname) # 获取指定节点的键值对
print item_list
envi = envi
ip_list=[]
# val1 = config.get(appname, envi) # 获取指定节点的指定key的value
# val2 = eval(config.get(appname, envi))
if envi == 'westos':
# print item_list[0][1]
ip_list.append(item_list[0][1])
else:
for i in eval(config.get(appname, envi)):
# print i['ip']
ip_list.append(i['ip'])
return ip_list
# print val1, type(val2), val2
if __name__ == '__main__':
print load_envi()
还需要在多学习一下。