zoukankan      html  css  js  c++  java
  • Python基础第12天

      一:三级菜单直接退出的方法(tag的用法)

    tag=True
    while tag:
        print('level1')
        choice=input('level1>>: ').strip()
        if choice == 'quit':break
        if choice == 'quit_all': tag = False
        while tag:
            print('level2')
            choice=input('level2>>: ').strip()
            if choice == 'quit': break
            if choice == 'quit_all': tag = False
            while tag:
                print('level3')
                choice = input('level3>>: ').strip()
                if choice == 'quit': break
                if choice == 'quit_all':tag=False

    二:对文件处理 (增删改查)

    import os
    def file_handler(backend_data,res='None',type='fetch'):
        if type == 'fetch':
            with open('renkoupucha','r') as read_f:
                tag=False  #标识一种状态
                ret=[]
                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
        elif type == 'change':
            with open('renkoupucha', 'r')as read_f, 
                    open('renkoupucha_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('renkoupucha', 'renkoupucha.bak')
            os.rename('renkoupucha_new', 'renkoupucha')
            os.remove('renloupucha.bak')
    
    def fetch(data):
        backend_data='backend %s' %data
        return file_handler(backend_data)
    
    
    
    def add():
        pass
    
    def change(data):
        # print('这是修改功能')
        print('用户输入的数据是',data)# data[0]#文档当中的一条记录
        backend=data[0]['backend']
        backend_data='backend %s' %backend
    
        old_server_recored='%s server %s %s weight %s maxconn %s'%(' '*8,data[0]['record']['server'],
                                                                   data[0]['record']['server'],
                                                                   data[0]['record']['weight'],
                                                                   data[0]['record']['maxconn'],)
        new_server_recored = '%s server %s %s weight %s maxconn %s' % (' ' * 8, data[1]['record']['server'],
                                                                       data[1]['record']['server'],
                                                                       data[1]['record']['weight'],
                                                                       data[1]['record']['maxconn'],)
        print('用户想要修改的记录是',old_server_recored)
        res = fetch(data[0]['backend'])
        print(res)
        if not res or old_server_recored not in res:
            return '修改记录不存在'
        else:
            index=res.index(old_server_recored)
            res[index]=new_server_recored    #修改的列表
            res.insert('%s
    ' %backend_data )
    
        res.insert(0,'%s
    ' %backend_data)
        file_handler(backend_data,res=res,type='change')
    
    def delete():
        pass
    
    if __name__=='__main__':
        msg='''
        1:查询
        2:添加
        3:修改
        4:删除
        5:退出
        '''
        msg_dic={
            '1':fetch,
            '2':add,
            '3':change,
            '4':delete,
        }
        while True:
            print(msg)
            choice=input('请输入你的选项: ').strip()
            if not choice:continue
            if choice =='5':break
    
            data=input('请输入你的数据:').strip()
            if choice != '1':
                data=eval(data)
            res=msg_dic[choice](data)
            print('最终结果',res)

        

  • 相关阅读:
    在windows上使用win2000资源工具
    Apache与Tomcat整合
    web服务器和应用服务器概念比较
    linux定时删除N天前的文件(文件夹)
    程序员如何自我学习和成长?
    20210708总结
    Docker 常用命令!还有谁不会?
    Redis常用命令set
    laravel与thinkphp之间的区别与优缺点
    2021年7月总结
  • 原文地址:https://www.cnblogs.com/xyd134/p/6492986.html
Copyright © 2011-2022 走看看