目标:
修改配置文件
要求:
1、增加配置文件内容
2、删除配置文件内容
3、查找配置文件内容
4、更改配置文件内容
配置文件内容:
配置文件见: Day2 - Python基础2作业【文件操作–修改haproxy配置文件 】.
代码如下
def flist():#将文件数据转成列表存储起来
f = open('config0', 'r+', encoding='utf-8')
f.seek(0)
f_list = []
for i in f:
f_list.append(i.strip())
f.close()
return f_list
def filedatatodict():#将文件数据转成字典存储起来
f = open('config0', 'r+', encoding='utf-8')
f.seek(0)
f_list = []
a = []
b = []
c = []
fd = {}
for i in f:
f_list.append(i.strip())
for index, j in enumerate(f_list):
if index == 0:
b.append(j)
elif index == 1:
c.append(j)
elif index != 1 and j[0:1] != '' and f_list[index - 1][0:1] == '':
b.append(j)
c = []
elif index != 1 and j[0:1] != '' and f_list[index - 1][0:1] != '':
c.append(j)
elif j[0:1] == '':
a.append(c)
c = []
a.append(c)
fd = dict(zip(b, a))
f.close()
return fd
def addto():#增
arg={
'backend':input('输入要添加的backend:'),
'record':{
'server':input('进入record\n输入server:'),
'weight':input('输入weight:'),
'maxconn':input('输入maxconn:')
}
}
f=open('config0', 'a+', encoding='utf-8')
f.write('\n'+'backend '+arg['backend']+'\n')
f.write(' ' * 8 + ('server ' + arg['record']['server'] +' '+ arg['record']['server'] + ' weight ' +
arg['record']['weight'] + ' maxconn ' + arg['record']['maxconn']) + '\n')
f.flush()
print("%s 添加成功"%arg['backend'])
f.close()
def delin():#删
flag='y'
f_list=flist()
fd=filedatatodict()
while flag=='y':
inym = 'backend ' + input("请输入要删除的域名网址:")
if inym in fd:
f0 = open('config0', 'w', encoding='utf-8')
for k,v in fd.items():
if k!=inym:
f0.write((k + '\n'))
for line in fd[k]:
line = ' '*8 + line + '\n'
f0.write(line)
f0.write('\n')
flag = 'n'
f0.close()
else:
flag=input("你输入的域名地址不存在,是否重新输入(y/n)")
def findto():#查
# 查
flag = 'y'
f_list = flist()
fd = filedatatodict()
while flag == 'y':
inym = 'backend ' + input("请输入要查询的域名网址:")
if inym in fd:
a=''.join(fd[inym])
print(inym)
print(' '*8+a)
flag = input("是否继续查询(y/n)")
else:
flag = input("你输入的域名地址不存在,是否重新输入(y/n)")
def updateto():#改
flag = 'y'
f_list = flist()
fd = filedatatodict()
while flag == 'y':
arg = {
'backend': input('输入要修改的backend:'),
'record': {
'server': input('进入record\n输入server:'),
'weight': input('输入weight:'),
'maxconn': input('输入maxconn:')
}
}
inym='backend '+arg['backend']
if inym in fd:
f0 = open('config0', 'w', encoding='utf-8')
for k, v in fd.items():
if k != inym:
f0.write((k + '\n'))
for line in fd[k]:
line = ' ' * 8 + line + '\n'
f0.write(line)
f0.write('\n')
else:
f0.write((inym+ '\n'))
f0.write(' ' * 8 + ('server ' + arg['record']['server'] +' '+arg['record']['server'] + ' weight '+
arg['record']['weight'] + ' maxconn ' + arg['record']['maxconn'])+ '\n')
f0.write('\n')
f0.flush()
print("%s 修改成功" % arg['backend'])
flag = 'n'
f0.close()
else:
flag = input("你输入的域名地址不存在,是否重新输入(y/n)")