python(13)- 文件处理应用Ⅱ:增删改查
- 用户选择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)- 文件处理应用Ⅱ:增删改查的更多相关文章
- python manage.py shell 的增删改查
python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...
- python学习之-成员信息增删改查
python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...
- 用dom4j解析xml文件并执行增删改查操作
转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...
- python 10min系列之实现增删改查系统
woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...
- 记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)
1.读取sql文件创建数据表 有一个形如下图的sql文件,使用python读取文件并在数据库中创建所有的表. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道 ...
- Python之实例对象的增删改查
#实例对象的增删改查p1 = ChinesePeople('wangyue')#print (p1.__dict__) #查看实例对象的属性#print (p1.name)(p1.play_ball( ...
- [ python ] 项目:haproxy配置文件增删改查
1. 开发要求 实现对 haproxy.cfg 增删改查操作 2. 程序介绍 # 作者:hkey # 博客地址:https://www.cnblogs.com/hukey/p/9288279.html ...
- Python字典的初识、增删改查及嵌套
为什么要有字典? 列表可以存储大量的数据,但数据间的关联型不强 列表的查询速度相对慢 dict:字典,容器型数据类型 数据类型的分类: 可变与不可变 可变(不可哈希)的数据类型: 列表list,字典d ...
- 文件操作之增删改查3---文件的修改,f.replace(),在linux里的一些应用sed,with语句方法来打开一个或多个文件避免忘记关闭,python一行写的太长,怎么编写多行的规范
f.replace()with open("xxx","r",encoding="utf-8") as f: 想修改文件中间的数据,有两个办 ...
- 5.Python文件操作之增删改查
需求一:取文件的前几行: f = open("yesterday","r",encoding="utf-8") for i in range ...
随机推荐
- URAL 1137Bus Routes (dfs)
Z - Bus Routes Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Subm ...
- PTA 10-排序6 Sort with Swap(0, i) (25分)
题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/678 5-16 Sort with Swap(0, i) (25分) Given a ...
- Python Excel导入数据库
import xlrd import MySQLdb def inMySQL(file_name): wb = xlrd.open_workbook(file_name) sh = wb.sheet_ ...
- Welcome-to-Swift-13继承(Inheritance)
一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性.当一个类继承其它类时,继承类叫子类(subclass),被继承类叫超类(或父类,superclas ...
- Key-value数据库:Redis缓存服务
Redis 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.其提供了多种主流语言的客户端,方便使用:同时Redis支持主 ...
- 【BJOI2014/bzoj4530】大融合
题意 有 $n$ 个点,初始没有连边,要求支持两个动态操作: 1. 加一条边(保证之前两点不连通) 2. 查询过一条边的简单路径数量(就是两边连通块的大小的乘积) $n,Q\le 100000$ 题解 ...
- mysql 查询死锁语句
我们可以用下面三张表来查原因: innodb_trx ## 当前运行的所有事务 innodb_locks ## 当前出现的锁 innodb_lock_wait ...
- C#创建Graphics对象的方法
方法一.利用控件或窗体的Paint事件中的PainEventArgs 在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用 ...
- aoj 2226 Merry Christmas
Merry Christmas Time Limit : 8 sec, Memory Limit : 65536 KB Problem J: Merry Christmas International ...
- Struts2的上传与下载
转自:http://blog.csdn.net/Mark_LQ/article/details/49822821 10.1.1 文件上传基本案例 第一步:上传组件依赖与commons-fileup ...