S3 Day21 查询修改程序

# -*- coding:utf8 -*-
def select(data):
    # print('from select')
    # print('用户查询的数据是:%s' %data)
    with open('ha.conf','r') as read_file:
        tag=False
        ret = []
        for text in read_file:
            result=('backend %s'%data)
            if text.strip()==result:
                tag=True
                continue
            if text.startswith('backend'):
                tag=False
            if tag:
                print('%s' %text,end='')
                ret.append(text)
    return ret
def insert():
    print('from insert')


def update(data):
    # print('from update')
    # print('用户输入的字符是:%s' %data)
    backend=data[0]['backend']
    old_record='%sserver %s %s weight %s maxconn %s%s' %(' '*8,
                                                       data[0]['record']['server'],
                                                       data[0]['record']['server'],
                                                       data[0]['record']['weight'],
                                                       data[0]['record']['maxconn'],'\n')
    new_record = '%sserver %s %s weight %s maxconn %s%s' % (' ' * 8,
                                                            data[1]['record']['server'],
                                                            data[1]['record']['server'],
                                                            data[1]['record']['weight'],
                                                            data[1]['record']['maxconn'], '\n')
    print('需要查询记录为:',old_record)
    #       server 2.2.2.5 2.2.2.5 weight 30 maxconn 4000
    res=select(backend)
    if not res or old_record not in res:#判断输入内容是否存在于backend下方
        print ('用户修改的记录不存在!')
    else:#修改列表内容
        index=res.index(old_record)#使用index方法确定需要修改的内容的索引位置
        res[index]=new_record#将res列表中的 [索引位置] 直接修改为新的记录
    with open('ha.conf','r') as read_f,\
            open('ha.conf_new','w') as write_f:
        for read_line in read_f:
            tag=False#设置tag状态标识符
            if not tag:#当tag等于False时,继续向新文件写入源文件内容
                write_f.write(read_line)






    print('最终的结果是---》',res)


def delete():
    pass
def quit():
    print('感谢使用!')

if __name__=='__main__':
    msg_dic={
        '1':select,
        '2':insert,
        '3':update,
        '4':delete,
        '5':quit,
    }

    # msg_dic[msg]()
    while True:
        print('''
        请选择功能:
        1.查询
        2.插入
        3.修改
        4.删除
        5.退出
        ''')
        msg = input('请选择对应功能:').strip()
        # res=msg_dic[msg]
        if not msg:continue
        data = input('请输入你需要查询的字符:').strip()
        if msg !='1':
            data=eval(data)
        if msg=='5':
            msg_dic[msg]()
            break
        elif msg=='1':
            print('你想查询的字符是:%s' % data)
            msg_dic[msg](data)
            break
        elif msg=='2':
            msg_dic[msg]()
            break
        elif msg=='3':
            msg_dic[msg](data)
            break

# [{'backend':'www.baidu.com','record':{'server':'2.2.2.4','weight':20,'maxconn':3000}},{'backend':'www.baidu.com','record':{'server':'2.2.2.5','weight':30,'maxconn':4000}}]


猜你喜欢

转载自blog.51cto.com/bobo5900pro/2309577
今日推荐