热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PythonDay3

#Author:ZhaoBin#实现对Haproxy配置文件的增删改查deffetch(backend):result[]withopen('ha.conf',&#

技术分享图片

#Author:ZhaoBin
#实现对Haproxy配置文件的增删改查

def fetch(backend):
result = []
with open(‘ha.conf‘,‘r‘,encoding=‘utf-8‘) as f:
flag = False
for line in f:
if line.strip().startswith("backend") and line.strip() == "backend " + backend:
flag = True
continue
if flag == True and line.strip().startswith("backend"):
flag = False
break
if flag == True and line.strip():
result.append(line.strip())
return result
def add(backend,record):
#先检查记录是否存在
record_list=fetch(backend)
print(record_list)
if not record_list:
#backend不存在
with open("ha.conf","r") as old, open("new.conf","w") as new:
for line in old:
new.write(line)
new.write("\nbackend " + backend+"\n")
new.write(" "*8 + record+"\n")
else:
#backend存在,record也存在
if record in record_list:
pass
else:
#backend存在,record不存在
record_list.append(record)
with open("ha.conf", "r") as old, open("new.conf", "w") as new:
flag = False
for line in old:if line.strip().startswith("backend") and line.strip() == "backend " + backend: flag = True
new.write(line) for new_line in record_list: new.write(" "*8+ new_line + "\n")if flag and line.strip().startswith("backend"): flag = False
new.write(line) continue
if not flag and line.strip(): new.write(line)
#ret = fetch("www.oldboy.org")
# print(ret)

bk="www.oldboy.org"
rd="server 100.1.7.8 weight 10 maxconn 3000"
add(bk,rd)

 


推荐阅读
  • python多进程的理解 multiprocessing Process join run
    最近看了下多进程。一种接近底层的实现方法是使用?os.fork()方法,fork出子进程。但是这样做事有局限性的。比如windows的os模块里面没有fork()方法。window ... [详细]
  • 调用:视图调用:1@Html.DropDownListFor(tt.HrEmpGuid,ViewData[Emp] as SelectList, new {@class   ... [详细]
  • 先看看效果是不是自己想要的吧item及item内部控件点击事件不懂的可以先点击查看 ... [详细]
  • docker整体了解
    Docker是一个基于LXC技术构建的容器引擎,基于Go语言开发,遵循Apache2.0协议开源Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移 ... [详细]
  • Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,现在在企业中的使用率也是很广的。git是一个分布式的版本控制系统,不像以前的svn,svn是 ... [详细]
  • linux文件系统和挂载
    创建ISO文件cpdevcdrom目的地.isomkfs命令生成对应·的文件系统但是使用mkfs没有办法修该生成的系统文件的某些特性,例如标记LABEL,如果强行修改会导致文件里面 ... [详细]
  • CentOS 7.6网卡绑定mode1
    CentOS7.6网卡绑定mode1[root@server~]#systemctlstopNetworkManager[root@server~]#systemctldisabl ... [详细]
  • VS2010快捷键大全原文:http:www.cnblogs.comLifeKingcnarchive201304163023603.html【窗口快捷键】Ctrl+W,W:浏览器 ... [详细]
  • 1、对于List而言,要不然就使用迭代器,要不然就从后往前删除,从前往后删除会出现角标越界。因为我List有两个remove方法,一个是int作为形参(删除指定位置的元素),一个是 ... [详细]
  • dremio的学习点滴
    在连接数据源后,进行数据源反射的创建,dremio会在本地创建一个类似于副本的文件,具体目录未知,当下次去执行sql时,则会启动加速器进行查询速度的优化。反射策略:fullupda ... [详细]
  • PICT初探索
    pict用于测试用例的生成,非常高效。也非常方便。安装完成后主要程序就一个exe文件。需要通过cmd命令行进入pict文件夹。建立测试用例文件然后使用简单的命令行生成测试用例也可以 ... [详细]
  • JavaScript语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在Node.js中&#x ... [详细]
  • 示例代码:12345678910111213141ProcessEngineprocessEngineConfiguration.getProcessEngine();2Tas ... [详细]
  • 闲话少说,直接切入主题,之前也是用一下其他的IDE,但是总是在vi和IDE之间来回切换,比较麻烦,于是乎,找了几个插件亲身体验,功能挺不错;1、安装vi7.0vim的官方网站是:www.vmuni ... [详细]
  • 一.支付1.系统繁忙,请稍后重试。(ALI40247):签名错误。我的问题来源(两个问题):①签名串sig ... [详细]
author-avatar
wocanimagebi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有