python学习-44 程序的解耦 (不是特别懂的,回头在复习)

import os

def file_handler(backend_data,res=None,type='fetch'):                  # 查询功能
    if type == 'fetch':
         with open('test_new.txt','r') as  read_f:
             ret = []
             tag = False
             for read_line in  read_f:
                if read_line.strip() == backend_data:
                    tag = True
                    continue

                if tag and read_line.startswith('backend'):
                    break

                if tag:
                    print(read_line,end='')
                    ret.append(read_line)
         return ret
    if type == 'change':                                          # 修改功能
        with open('test_new.txt', 'r') as read_f, \
                open('test_new.txt_new', 'w') as write_f:
            tag = False
            has_write = False
            for read_line in read_f:
                if read_line.strip() == backend_data:
                    tag = True
                    continue
                if tag and read_line.startswith('backend'):
                    tag = False
                if not tag:
                    write_f.write(read_line)
                else:
                    if not has_write:
                        for record in res:
                            write_f.write(record)
                        has_write = True

        os.rename('test_new.txt', 'test_new.txt.bak')
        os.rename('test_new.txt_new', 'test_new.txt')
        os.remove('test_new.txt.bak')

def fetch(data):
    print('您输入的信息是:',data)
    backend_data= 'backend %s' % data
    return file_handler(backend_data)

def change(data):
    print('开始修改功能')
    print('用户输入的信息是:',data)
    backend=data[0]['backend']
    backend_data='backend %s' %backend
    old_server_record ='%s server %s %s\n'%(*9,data[0]['record']['server'])
    new_server_record = '%s server %s %s\n' % (*9, data[1]['record']['server'])
    print('您想要修改的记录:',old_server_record)
    res=fetch(backend)
    print(res)
    if not res or old_server_record not in res:
        return '您要修改的信息不存在'
    else:
        index = res.index(old_server_record)
        res[index]=new_server_record

    res.insert(0,'%s\n' %backend_data)
    file_handler(backend_data,res=res,type='change')


if __name__== '__main__':
    msg='''
    1:查询
    2:修改
    5:退出
    '''
    msg_dic={
        '1':fetch,
        '2':change
    }
    while True:
        print(msg)
        choose = input('请输入您要的选项:').strip()
        if not choose: continue
        if choose == '5':break

        data = input('请输入您的信息:').strip()
        if choose != '1':
            data = eval(data)


        res = msg_dic[choose](data)            # 查询到的结果放到一个列表里输出
        print('最终的结果:',res)

 

转载于:https://www.cnblogs.com/liujinjing521/p/11234476.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值