小实验3:实现haproxy的增、删、查
# 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的增、删、查的更多相关文章
- [ python ] 项目:haproxy配置文件增删改查
1. 开发要求 实现对 haproxy.cfg 增删改查操作 2. 程序介绍 # 作者:hkey # 博客地址:https://www.cnblogs.com/hukey/p/9288279.html ...
- PHP数据库的 增 删 查
一.匹配数据库登录 步骤: 1.做一个普通的登录界面,注意提交方式为post. <!--登录界面--> <form action="chuli.php" meth ...
- WindowsForm 增 删 查 改
首先是连接数据库 在数据库里写代码 建立一个数据库下面是代码 create database JinXiaoCun go use JinXiaoCun go create table users ( ...
- HBase java API 的使用范例(增,删,查,扫描)
编辑pom.xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase ...
- java web数据库的增删改查详细
本次课上实验是完成数据库的增删改查. 包括增加用户信息.删除用户信息.多条件查找用户信息.修改用户信息(主要是复选框单选框等的相关操作.) 下面下看一下各个界面的样子. 总页面:显示全部页面:增加页面 ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- C# ADO.NET (sql语句连接方式)(增,删,改)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
随机推荐
- BZOJ 3168: [Heoi2013]钙铁锌硒维生素 [线性基 Hungary 矩阵求逆]
3168: [Heoi2013]钙铁锌硒维生素 题意:给一个线性无关组A,再给一个B,要为A中每个向量在B中选一个可以代替的向量,替换后仍然线性无关.判断可行和求字典序最小的解 PoPoQQQ orz ...
- BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 779 Solved: 453[Submit][Status] ...
- ------- 软件调试——注销 QQ 过滤驱动设置的事件通知 CallBack (完)-------
---------------------------------------------------------------------------------- 本系列的最后一篇演示如何通过调试手 ...
- 游戏2048源代码 - C语言控制台界面版
一.游戏介绍 <2048>是最近比较流行的一款数字游戏.原版2048首先在github上发布,原作者是Gabriele Cirulli.它是基于<1024>和<小3传奇& ...
- Mysql大数据备份和增量备份及还原
目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup ;ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提 ...
- 克隆虚拟机以及两台linux机器相互登录:linux学习第四篇
克隆虚拟机 1. 克隆 之后自己命名克隆的虚拟机并自己选择存放位置,完成克隆 2. 克隆虚拟机之后对新的虚拟机修改网络配置,以免冲突(将配置文件里的UUID去掉,并修改IP地址) ...
- linux文件权限查看及修改-chmod ------入门的一些常识
查看Linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)修改文件及文件夹权限:sudo chmod -(代表类型)×××(所有者)×××(组用户) ...
- Linux常用命令详解(一) -- 处理目录常用命令
ls:列出目录 作用:查看linux文件夹包含的文件以及其权限(包括目录.文件夹.文件权限)和目录信息等 命令格式:ls [选项] [文件或目录] 选项或参数: ...
- qemu-trustzone编译&运行(包含linux内核的编译方法)
由于之前都是用的mtk6797开发板,回到实验室之后想要做实验的话需要弄一个支持trustzone的qemu,在这里记录一下我的编译和调试过程.本来最近一直忙着看论文和写论文,但是忽然发现自己在实验部 ...
- PAT1078 Hashing 坑爹
思路:用筛法给素数打表,二次探测法(只需要增加的)–如果的位置被占,那么就依次探测. 注意:如果输入的,这也不是素数:如果,你需要打表的范围就更大了,因为不是素数. AC代码 #include < ...