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

# 编辑者:闫龙

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 + "\n", j);

def InsertConf():

"在haproxy,conf中追加一段内容"

print("目前只能针对bakend字段进行添加操作")

bakend = {}

com = "backend\t" + input("请输入域名:") + "\n"

bakend[com] = "";

bakend[com] += ("\tserver\t" + input("Server:") + "\t");

bakend[com] += ("weight\t" + input("weight:") + "\t");

bakend[com] += ("maxconn\t" + input("maxconn:") + "\n");

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\t" + input("请输入域名:")

bakend[com] = "";

bakend[com] += ("\tserver\t" + input("Server:") + "\t");

bakend[com] += ("weight\t" + input("weight:") + "\t");

bakend[com] += ("maxconn\t" + input("maxconn:") + "\n");

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 + "\n" + 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 + "\n" + j);

os.rename("haproxy.conf", "haproxy.conf_bak" + time.strftime("%Y%m%d%H%M%S"));

os.rename("haproxy.conf_new", "haproxy.conf");

print("删除成功");

定义的函数集合

 

查看原文