需求:对文件进行增删改查,使用函数调用的方式完成操作

# 编辑者:闫龙 import MyFuncation; Menu = ["查询","添加","修改","删除"] while True: for i in range(len(Menu)): print(i+1,Menu[i]); UserSelect = input("请选择您要操作的类型>>>:"); if (UserSelect == "1") : MyFuncation.SelectConf(); elif(UserSelect == "2"): MyFuncation.InsertConf(); elif(UserSelect == "3"): MyFuncation.UpdateConf(); elif(UserSelect == "4"): MyFuncation.DeleteConf(); elif(UserSelect.upper() == "Q"): break;

# 编辑者:闫龙 import os import time def SelectConf(): "查询haproxy.conf中指定字段的内容" TitlesDic = {}; count = 0; with open("haproxy.conf", mode="r+", encoding="utf8") as ConfFile: ConfRead = ConfFile.readlines(); for i in ConfRead: if (not i[0].isspace()): count += 1; TitlesDic[count] = {}; TitlesDic[count][i.strip()] = ""; Titles = i.strip(); else: TitlesDic[count][Titles] += i; for i in TitlesDic.keys(): k = list(dict(TitlesDic[i]).keys())[0] print(i, k); UserSelectTwo = input("请选择您要查询的字段>>>:"); for i, j in dict(TitlesDic[int(UserSelectTwo)]).items(): print(i + " ", j); def InsertConf(): "在haproxy,conf中追加一段内容" print("目前只能针对bakend字段进行添加操作") bakend = {} com = "backend " + input("请输入域名:") + " " bakend[com] = ""; bakend[com] += (" server " + input("Server:") + " "); bakend[com] += ("weight " + input("weight:") + " "); bakend[com] += ("maxconn " + input("maxconn:") + " "); with open("haproxy.conf", mode="a+") as ConfFile: for i, j in bakend.items(): ConfFile.writelines(i + j); print("添加成功!") def UpdateConf(): "修改haproxy.conf中的指定内容" print("目前只能针对backend www.oldboy20.org字段进行修改操作") bakend = {} WriteDic = {}; com = "backend " + input("请输入域名:") bakend[com] = ""; bakend[com] += (" server " + input("Server:") + " "); bakend[com] += ("weight " + input("weight:") + " "); bakend[com] += ("maxconn " + input("maxconn:") + " "); with open("haproxy.conf", mode="r+", encoding="utf8") as ConfFile: ConfRead = ConfFile.readlines(); for i in ConfRead: if (not i[0].isspace()): Titles = i.strip(); WriteDic[Titles] = ""; else: WriteDic[Titles] += i; with open("haproxy.conf_new", mode="w+", encoding="utf8") as WriteNewFile: WriteDic.pop("backend www.oldboy20.org") WriteDic.update(bakend); for i, j in WriteDic.items(): WriteNewFile.writelines(i + " " + j); os.rename("haproxy.conf", "haproxy.conf_bak" + time.strftime("%Y%m%d%H%M%S")); os.rename("haproxy.conf_new", "haproxy.conf"); print("修改成功!") def DeleteConf(): "删除haproxy.conf中的指定内容" TitlesDic = {}; WriteDic = {}; count = 0; with open("haproxy.conf", mode="r+", encoding="utf8") as ConfFile: ConfRead = ConfFile.readlines(); for i in ConfRead: if (not i[0].isspace()): count += 1; TitlesDic[count] = {}; TitlesDic[count][i.strip()] = ""; Titles = i.strip(); WriteDic[Titles] = ""; else: TitlesDic[count][Titles] += i; WriteDic[Titles] += i; for i in TitlesDic.keys(): k = list(dict(TitlesDic[i]).keys())[0] print(i, k); UserSelectTwo = input("请选择您要删除的字段>>>:"); with open("haproxy.conf_new", mode="w+", encoding="utf8") as WriteNewFile: WriteDic.pop(list(dict(TitlesDic[int(UserSelectTwo)]).keys())[0]) for i, j in WriteDic.items(): WriteNewFile.writelines(i + " " + j); os.rename("haproxy.conf", "haproxy.conf_bak" + time.strftime("%Y%m%d%H%M%S")); os.rename("haproxy.conf_new", "haproxy.conf"); print("删除成功");