day3

import os,sys
old = sys.argv[]
new = sys.argv[]
file_name = sys.argv[]
tmp_file ="tmpfile"
open(tmp_file,"w")
file1 = open(file_name,"r")
file2 = open(tmp_file,"r+")
for line in file1:
if old in line:
line= str.replace(line,old,new)
file2.write(line)
if new not in line:
file2.write(line)
file2.flush()
file1.close()
file2.close() os.remove(file_name)
os.rename(tmp_file,file_name)
import os
def select(backend):
result = []
flag = False
with open("haproxy.conf","r",encoding="UTF-8") as f:
for line in f:
if line.strip() == "backend %s" %(backend):
flag = True
continue
if line.strip().startswith("backend"):
flag = False
if flag:
line = line.strip()
result.append(line)
for i in result:
if i == "":
result.remove(i)
for i in result:
print(i)
return i def append(backend):
with open("haproxy.conf","a",encoding="UTF-8") as f:
f.write("%sbackend %s%s%8sserver %s %s weight %s maxconn %s"%("\n",backend[],"\n","\b",backend[],backend[],backend[],backend[])) def delete(backend):
file1 = open("haproxy.conf","r",encoding="UTF-8")
file2 = open("haproxy.new","w+",encoding="UTF-8")
flag = False
for line in file1:
if backend in line:
flag = True
continue
elif flag:
flag = False
else:
file2.write(line)
file1.close()
file2.close()
os.remove("haproxy.conf")
os.renames("haproxy.new","haproxy.conf") def update(backend,select):
print("您要修改的是:%s"%(select))
delete(backend)
backend=[]
backend_message = input("例:www.baidu.com 192.168.1.1 200 2000\n请输入修改后的新信息:")
append(backend_message.split(" ")) if __name__ == "__main__":
while True:
print(u"%s\n1.查找记录\n2.添加记录\n3.删除记录\n4.修改记录\n5.退出程序\n"%("".center(,"-")))
case=int(input("case input number:"))
if case == :
backend=[]
backend_message = input("例:www.baidu.com 192.168.1.1 200 2000\n请输入相关信息:")
append(backend_message.split(" "))
elif case == :
select(input("例:www.baidu.com\n请输入要查找的backend:"))
elif case == :
delete(input("例:www.baidu.com\n请输入要删除的backend:"))
elif case == :
backend=input("例:www.baidu.com\n请输入要修改的backend:")
update(backend,select(backend))
elif case == :
exit("已经退出程序")
else:
print("\033[1;31;47m请输入正确case指令\033[0m")
day3的更多相关文章
- 冲刺阶段day3
day3 项目进展 今天周三,我们五个人难得的一整个下午都能聚在一起.首先我们对昨天的成果一一地查看了一遍,并且坐出了修改.后面的时间则是做出 登录界面的窗体,完善了登录界面的代码,并且实现了其与数据 ...
- python笔记 - day3
python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- Spark菜鸟学习营Day3 RDD编程进阶
Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...
- Spark Tungsten揭秘 Day3 内存分配和管理内幕
Spark Tungsten揭秘 Day3 内存分配和管理内幕 恭喜Spark2.0发布,今天会看一下2.0的源码. 今天会讲下Tungsten内存分配和管理的内幕.Tungsten想要工作,要有数据 ...
- Catalyst揭秘 Day3 sqlParser解析
Catalyst揭秘 Day3 sqlParser解析 今天我们会进入catalyst引擎的第一个模块sqlparser,它是catalyst的前置模块. 树形结构 从昨天的介绍我们可以看到sqlPa ...
- Kakfa揭秘 Day3 Kafka源码概述
Kakfa揭秘 Day3 Kafka源码概述 今天开始进入Kafka的源码,本次学习基于最新的0.10.0版本进行.由于之前在学习Spark过程中积累了很多的经验和思想,这些在kafka上是通用的. ...
- python s12 day3
python s12 day3 深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- 三校联考 Day3
三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...
随机推荐
- 了解 JS 原型
原型概念 当创建了一个函数时,就会根据一组特定的规则为该函数创建一个 prototype 属性,这个属性指向函数的原型对象.在默认情况下,所有原型对象都会自动获得一个constructor 的属性 这 ...
- Windows phone应用开发[17]-xap提交异常处理
在windows phone 应用提交操作上早在2011年时就写过一篇Windows phone 应用开发[4]-应用发布,那时wp应用提交官方市场的流程繁杂[超过了5步].因为上传和填写应用信息页面 ...
- iOS真机调试引入第三方库(如友盟等)编译时候,出现错误提示
用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过.看了下问题,报的是以下错误: MARK:解决方法:在building Setting 中设置bitCode ...
- PRINCE2七大原则
我们先来回顾一下,PRINCE2七大原则分别是持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁. 第三个原则:明确定义的角色和职责. 项目离不开人员,错误的人来了,合适的人没 ...
- js 中的基本类型和引用类型的区别
js中的基本类型赋值之后,只有值相等的时候,二者才会相等,例如 var a='123'; var b=a; console.log(a===b); 返回的是true ,说明他们是相等的, 此时改变a ...
- python学习笔记-(十二)scoket编程基础
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...
- 如何阅读Java源码 阅读java的真实体会
刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 说到技术基础,我打个比 ...
- C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用
1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL.这个比较常见也很简单 即有完整的webservice文件目录如下图 ...
- no module named flask.ext.login
在用安装了flask-login后使用时发现了问题,查了许多资料尝试了许多办法: 1.以为是文件结构的问题,因为flask-login包中没有__init__.py结果编译后还是不行 2.以为是路径问 ...
- vim 支持C++11 lambda表达式
http://www.vim.org/scripts/script.php?script_id=3797 Tar contains just the required .vim files, so u ...