程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

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

发布于2019-08-06 10:07     阅读(608)     评论(0)     点赞(4)     收藏(5)


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.pythonheidong.com/blog/article/7467/63feb94c501f56a5361e/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)