给出的配置文件: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中字典、列表、函数,流程,格式,文件操作、使用等等。

二、流程图:

wKioL1kEwd3yK_mXAAqT_W6w9Xg301.png-wh_50

本程序的不足,未对服务器进行参数对比,出现了相同参数服务器重复不报错的问题。以后改进吧。