给出的配置文件:configuration.cfg
- frontend testserver
- servername 10.5.7.9
- IP 10.5.7.9
- port 8080
- backend Oracle
- servername 10.5.7.11 IP 10.5.7.11 weight 20 maxconn 2000
- servername 10.5.7.12 IP 10.5.7.12 weight 30 maxconn 3000
- frontend pubserver
- servername 10.5.7.13
- IP 10.5.7.13
- port 80
- backend mysql
- servername 10.5.7.15 IP 10.5.7.15 weight 20 maxconn 2000
- servername 10.5.7.16 IP 10.5.7.16 weight 30 maxconn 3000
目标:用 Python 编写脚本,实现用户对该配置文件中 backend 系列中的各类服务器的进行添加、修改、查看、删除等操作。
分析:
一、解析成如下字典方式:
- 具体结构:
- {"backend" : "Oracle",
- "server":{
- "server":"101.1.7.9"
- "weight":"30"
- "maxconn":"300"
- }
- 对应关系:
- {sys_zone_name_ky:srv_zone_name_vl,
- svr_name_ky:{
- svr_record_dict_vl{}
- }
- }
- svr_zones_all_dict =
- {svr_name_ky:{svr_record_dict_vl{}} ### 记录各服务器的详细信息 ###
- #################################################################
- 系统展示函数:sys_show内表述关系:
- {sys_zone_name:srv_zone_name,
- svr_name:{
- svr_record_dict{}
- }
- }
- svr_zones_dict =
- {svr_name:{svr_record_dict{}}
- '''
说明:对于 orderedDict() 和 defaultdict(list),enumerate() 等需要认真查看其使用方法。
练习了在 Python 中字典、列表、函数,流程,格式,文件操作、使用等等。
二、流程图:
本程序的不足,未对服务器进行参数对比,出现了相同参数服务器重复不报错的问题。以后改进吧。
来源: http://www.bubuko.com/infodetail-2046972.html