# 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:
break
while True:
for i in option:
print(i)
choice = input("请选择操作方式:序列号>>>")
if choice == "":
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 =="":
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 =="":
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() 一下会不会能执行呢?  【待会回家上图。。】

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

小实验3:实现haproxy的增、删、查的更多相关文章

  1. [ python ] 项目:haproxy配置文件增删改查

    1. 开发要求 实现对 haproxy.cfg 增删改查操作 2. 程序介绍 # 作者:hkey # 博客地址:https://www.cnblogs.com/hukey/p/9288279.html ...

  2. PHP数据库的 增 删 查

    一.匹配数据库登录 步骤: 1.做一个普通的登录界面,注意提交方式为post. <!--登录界面--> <form action="chuli.php" meth ...

  3. WindowsForm 增 删 查 改

    首先是连接数据库  在数据库里写代码 建立一个数据库下面是代码 create database JinXiaoCun go use JinXiaoCun go create table users ( ...

  4. HBase java API 的使用范例(增,删,查,扫描)

    编辑pom.xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase ...

  5. java web数据库的增删改查详细

    本次课上实验是完成数据库的增删改查. 包括增加用户信息.删除用户信息.多条件查找用户信息.修改用户信息(主要是复选框单选框等的相关操作.) 下面下看一下各个界面的样子. 总页面:显示全部页面:增加页面 ...

  6. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  7. C# ADO.NET (sql语句连接方式)(增,删,改)

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  9. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

随机推荐

  1. bzoj 3864: Hero meet devil [dp套dp]

    3864: Hero meet devil 题意: 给你一个只由AGCT组成的字符串S (|S| ≤ 15),对于每个0 ≤ .. ≤ |S|,问 有多少个只由AGCT组成的长度为m(1 ≤ m ≤ ...

  2. BZOJ 3295: [Cqoi2011]动态逆序对 [CDQ分治]

    RT 传送门 首先可以看成倒着插入,求逆序对数 每个数分配时间(注意每个数都要一个时间)$t$,$x$位置,$y$数值 $CDQ(l,r)$时归并排序$x$ 然后用$[l,mid]$的加入更新$[mi ...

  3. redis主从复制入门案例

    主从复制 特点: 1.master可以拥有多个slave 2.多个slave可以连接同一个master外,还可以连接到其他slave 3.主从复制不会阻塞master,在同步数据时,master可以继 ...

  4. Windows Server 2016-部署额外域控制器

    我们一般所提到的所谓域外控制器,是指除域内第一台域控制器之外的其他域控制器.额外域控制器很多时候也有辅助域控一称.那么在同一域内安装多台域控制器有什么优点呢: 1.提高用户登录效率.多台域控制器可以同 ...

  5. javaweb重定向的两种方式

    第一种 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Htt ...

  6. 面向对象编程总结--Python

    万物皆为对象.自然环境赋予人类无尽的遐想,而面向对象编程之思想就是来自于大自然.自然界,类和对象比比皆是,比如:鸟类和麻雀,鱼和鲤鱼......其中鸟类就是各种鸟的总称,而麻雀只不过是其中之一(对象) ...

  7. vuex是什么东西?

    vuex是什么鬼? 文档上面对vuex的解释是 "一个专为 Vue.js 应用程序开发的状态管理模式",恩,看完这句是否对vuex有了一个大概的认识? 答案是:"认识你个 ...

  8. EL表达式多条件判断方式

    <td> <c:forEach items="${cityMap}" var="entry"> <hr> <input ...

  9. linux下LAMP环境的搭配

    之前电脑上换了ubuntu16.04,本地需要重新配置,但是忘得一干二净,所以重新配置了一下,并再此记录一下. 安装apache: sudo apt-get install apache2 重启apa ...

  10. mysql有多条记录的单个字段想存为一个字段显示的方法

    SELECT po.id,(SELECT GROUP_CONCAT(mr.member_type) as memberTypeList FROM prod_offer_member_rel mr WH ...