作业-修改配置文件

目标:

修改配置文件
要求:
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)")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值