博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小实验3:实现haproxy的增、删、查
阅读量:5143 次
发布时间:2019-06-13

本文共 2205 字,大约阅读时间需要 7 分钟。

# Author:Alano# -*- conding:utf-8 -*-# 这里有一个问题:为什么手动删除了haproxy_new中的内容,但是执行添加命令的时候依然显示数据已经存在?f = open("haproxy","r")f_new = open("haproxy_nw","w",encoding="utf-8")b = f.readlines()option = ("1、请输入搜索的地址:","2、请输入增加的内容:","3、请输入删除的内容:")def f_back():    for i in range(1,100):        k = input('输入q返回上一级菜单 >>>')        if k!='q':            i += 1        else:            breakwhile True:    for i in option:        print(i)    choice = input("请选择操作方式:序列号>>>")    if choice == "1":        data = input("请输入搜索地址:")        address = "backend %s\n"%data            # 利用字符串拼接,定义一个变量.        if address in b:                     # 利用列表的下标来定位位置,然后通过下标打印内容。            index_add = b.index(address)            print(b[index_add],b[index_add+1])        if address not in b:            print("您查找的内容不存在")        f_back()    if choice =="2":        data = input("输入增加内容,格式{'backend':,'record':{'server':,'weight':,'maxconn':}} >>> ")        # 输入一条字典信息        data_eval = eval(data)                                   # 通过列表计数器来判断输入的内容是否在列表中存在,如果计数器为0则不存在,如果计数器不为0则存在。        f_find = b.count("backend %s\n"%data_eval['backend'])        # 如果backend后的内容在文件中不能找到则新增。        if f_find == 0:            for line in b:                f_new.write(line)                             # 将输入的内容通过字符串拼接的形式写入文件中            f_new.write("\nbackend ")            f_new.write(data_eval["backend"])            f_new.write("\n        server %s weight %s maxconn %s"\                        %(data_eval["record"]["server"],data_eval["record"]["weight"]                        ,data_eval["record"]["maxconn"]))            print("新增一条数据")        if f_find != 0:            print("您添加的内容已经存在")        f_back()    if choice =="3":        data = input("请输入删除内容 >>> ")        data_eval = eval(data)        f_find = b.count("backend %s\n"% data_eval['backend'])        if f_find != 0:            del data_eval            print("删除一条内容")        else:            print("您输入的内容文件中不存在")        f_back()    f.close()    f_new.close()

这里有个疑问,我自己也不知道怎么回事,在执行插入新增项之后返回初始菜单,再进行插入同样数据,不是应该报错“您添加的内容已经存在”。。。

下面报错I\O operation on closed file,需要关闭文件才能放出释放内存,那用flush() 一下会不会能执行呢?  【待会回家上图。。】

 

新手上路。。。。还是需要多学习啊。。。。

转载于:https://www.cnblogs.com/xiapu5150/p/7207374.html

你可能感兴趣的文章
画图板中的画图工具的使用
查看>>
十九、全球经济政治社会一体化的总体发展趋势
查看>>
zoj 2229 Ride to School
查看>>
Merge k Sorted Lists
查看>>
jQuery 简介
查看>>
Python实现多元线性回归
查看>>
Jsq.java
查看>>
CSS单位PX、EM、REM、PT的区别
查看>>
unity出现Ignoring menu item NGUI because it is in no submenu!
查看>>
微信小程序星星评价
查看>>
eclipse查看、修改tomcat端口号!
查看>>
HDU 5597 GTW likes function 打表
查看>>
Educational Codeforces Round 13 A. Johny Likes Numbers 水题
查看>>
so模块加载后数据问题
查看>>
HTML5 video标签,右下角的下载按钮怎么去掉
查看>>
Swift快速入门
查看>>
unicode-range 字体混搭(转)
查看>>
数据库复习总结(19)-锁模型
查看>>
如何去应付你的上司给你一个变化无常的需求?
查看>>
ReSharper 配置及用法(一)
查看>>