用户选择1,增加功能:
    用户输入www.oldboy2.org和server 11111 weight 2222 maxconn 3333后,
在www.oldboy2.org下增加一条server信息:server 11111 weight 2222 maxconn 3333
用户选择2,删除功能:
    用户输入www.oldboy1.org和10.10.10.1 10.10.10.1后,
server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000将被删除

用户选择3,修改功能:
    用户输入www.oldboy2.org,更改前ip所在的行server 3.3.3.3 3.3.3.3 weight 20 maxconn 3000,
更改后ip所在的行server 2.2.2.4 2.2.2.4 weight 20 maxconn 3000
用户选择4,查询功能:
    用户输入www.oldboy1.org用户信息后,打印对应的server信息:
server 10.10.0.10 weight 9999 maxconn 33333333333
server 10.10.10.1 weight 22 maxconn 2000
server 2.2.2.4 weight 20 maxconn 3000

用户选择5,退出程序
def menu():
menu={"1":"增加","2":"删除","3":"修改","4":"查询","5":"退出"}
for key in menu:
print(key,menu[key]) def search():
l=[]
flag=True
while flag:
url=input("please input url you want to search:").strip() #输入想要查询的域名
with open("haproxy.conf", encoding="utf8") as s: #打开文件
for line in s:
if line.startswith("backend") and url in line: #第一步,读到想要查询的域名所在的行,改变标志位状态
flag=False
continue
if line.startswith("backend") and flag == False: #第三步,再次读取域名所在的行后,本次循环结束
break if flag==False: #第二步,将域名下的ip所在行写入列表中
l.append(line)
for i in l: #第四步,打印需要查询的域名下的ip地址所在的行
print(i.strip())
break def delete():
flag=True
l=[]
url = input("input url you want to delete:").strip() #输入想删除的ip地址所对应的域名
ip = input("input ip you want to delete:").strip() #输入想要删除的域名
while flag:
with open("haproxy.conf") as d,\
open("haproxy.conf_delete","w+") as d_2: #打开原文档haproxy.conf ,创建删除后的文档haproxy.conf_delete
for line in d:
if line.startswith("backend") and url in line: #第二步,当读取到想删除的ip地址对应的域名所对应的行
d_2.writelines(line) #将该行写入haproxy.conf_delete文档中
flag=False
continue
if line.startswith("backend") and flag==False:
# 第四步,第二次读到域名行,将列表里的内容写入haproxy.conf_delete文档中,要删除的ip行不写入文档中
flag=True
for line in l:
if url in line:
continue
d_2.writelines(line)
d_2.writelines(line)
if flag==False: #第三步,将域名下所对应的ip行写入列表中
l.append(line)
if flag: #第一步将读取到的行写入haproxy.conf_delete文档中
d_2.writelines(line)
break def add():
url =input("please input url you want to add:").strip() #输入想要增加ip所在的域名和增加的ip所在行
ip = input("please input ip you want to add:")
with open("haproxy.conf") as a,open("haproxy.conf_add","w") as a_2: #打开文档haproxy.conf,新建文档haproxy.conf_add
for line in a:
a_2.writelines(line) #循环写入读取到的行到文档haproxy.conf_add中
if line.startswith("backend") and url in line:
a_2.writelines(ip) #当读取到ip所在的域名,将要加入的ip所在的行写入文档haproxy.conf_add中
a_2.writelines("\n") def change():
l=[]
flag=True
url = input("please input url you want to change:").strip() # 输入想要修改ip所在的域名
ip = input("please input ip you want to change:") # 输入想要修改ip所在行
ip_changed=input("please input ip you want to changed:") #输入想要修改过ip所在行
with open("haproxy.conf") as c,open("haproxy.conf_change", "w") as c_2: ##打开文档haproxy.conf,新建文档haproxy.conf_change
for line in c:
if line.startswith("backend") and url in line:
c_2.writelines(line) #第二步,读到想要修改ip所在的域名的行将该行写入文档haproxy.conf_change
flag=False #改变标志位状态
if line.startswith("backend") and flag==False:
for line in l: #第四步,循环到列表中需要改变的ip地址,将修改过的ip地址写入文档haproxy.conf_change中
if line==ip:
c_2.writelines(ip_changed)
continue
c_2.writelines(line) #将列表中其他内容写入文档haproxy.conf_change中
flag=True
if flag: #第一步,将读到的行写入文件haproxy.conf_change中
c_2.writelines(line)
if flag==False: #第三步,将域名所在的行放入列表中
l.append(line) def main():
while True:
menu()
choice=int(input("input your choice:"))
if choice==1:
add()
elif choice==2:
delete()
elif choice==3:
change()
elif choice==4:
search()
elif choice==5:
break main()

  

 
 
    
 
 
												

python(13)- 文件处理应用Ⅱ:增删改查的更多相关文章

  1. python manage.py shell 的增删改查

    python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...

  2. python学习之-成员信息增删改查

    python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...

  3. 用dom4j解析xml文件并执行增删改查操作

    转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...

  4. python 10min系列之实现增删改查系统

    woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...

  5. 记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)

    1.读取sql文件创建数据表 有一个形如下图的sql文件,使用python读取文件并在数据库中创建所有的表. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道 ...

  6. Python之实例对象的增删改查

    #实例对象的增删改查p1 = ChinesePeople('wangyue')#print (p1.__dict__) #查看实例对象的属性#print (p1.name)(p1.play_ball( ...

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

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

  8. Python字典的初识、增删改查及嵌套

    为什么要有字典? 列表可以存储大量的数据,但数据间的关联型不强 列表的查询速度相对慢 dict:字典,容器型数据类型 数据类型的分类: 可变与不可变 可变(不可哈希)的数据类型: 列表list,字典d ...

  9. 文件操作之增删改查3---文件的修改,f.replace(),在linux里的一些应用sed,with语句方法来打开一个或多个文件避免忘记关闭,python一行写的太长,怎么编写多行的规范

    f.replace()with open("xxx","r",encoding="utf-8") as f: 想修改文件中间的数据,有两个办 ...

  10. 5.Python文件操作之增删改查

    需求一:取文件的前几行: f = open("yesterday","r",encoding="utf-8") for i in range ...

随机推荐

  1. Wannafly挑战赛2

    Cut 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld 题目描述 给你一个长度为n的序列,你每次可以将一个序 ...

  2. oracle中的dual表

    dual表是和Oracle数据字典一起创建的.它实际上只包含dummy这一个column,并且只有一条记录,这条记录的值是X. X dual表的owner是SYS,但所有用户都可以访问它.Althou ...

  3. 九度oj 题目1365:贝多芬第九交响曲

    现在在一块空的场地上会有一个大的二维棋盘,裁判会给你指定初始位置及一座贝多芬雕像所处的位置,你开始时就站在裁判指定的初始位置处,你的目标是跳到贝多芬雕像的位置.为了给比赛增加一定的难度,你在棋盘上行走 ...

  4. 【bzoj1941】[Sdoi2010]Hide and Seek KD-tree

    题目描述 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了消除寂寞感,他决定和他的好朋友giPi(鸡皮)玩一个更加寂寞的游戏---捉迷藏. ...

  5. showModalDialog实现本页面内部跳转

    showModalDialog的弹窗中,要实现本窗口跳转而不打开新窗口,要么submit提交,要么按如下跳转,而不能采用location=xx来跳转:function go_link(url) {   ...

  6. [暑假集训--数位dp]cf55D Beautiful numbers

    Volodya is an odd boy and his taste is strange as well. It seems to him that a positive integer numb ...

  7. mod性质 学习笔记

    mod性质小结 \(a\equiv b(\mod m)\) $ \rightarrow \( \)a-b=k*m,k\in Z$ \(a\equiv b且c\equiv d(\mod m)\) \(\ ...

  8. CodeForces 618D Hamiltonian Spanning Tree

    题意:要把所有的节点都访问一次,并且不能重复访问,有两种方式访问,一种是根据树上的路径 走和当前节点连接的下一个节点cost x, 或者可以不走树上边,直接跳到不与当前节点连接的节点,cost y 分 ...

  9. anaconda安装及环境变量配置

    最近无聊想的学习一下python. 首先可以在官网上下载与自己电脑兼容的anaconda安装包,网址如下https://www.continuum.io/downloads 下载好后就是一个exe文件 ...

  10. luogu 1142 轰炸 最多共线点数

    题目链接 题意 给定\(n(n\leq 700)\)个点,问共线的点最多有多少个? 思路 \(O(n^3)\):枚举两个顶点确定一条直线,再看有多少个顶点在这条直线上.讲道理会T. \(O(n^2lo ...