#1.查找:从文件中找到www.oldboy1.org对应的backend记录并打印出相应的backend块 ##################文件haproxy.conf中某个backend段落########################## backend www.oldboy1.org server 101.1000.7.9 101.1000.7.9 weight 20 maxconn 30 server 2.2.2.7 2.2.2.7 weight 30 maxconn 4000 server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000 server 2.2.2.5 2.2.2.5 weight 30 maxconn 4000 ############################################################## import os # 程序的解耦: 把fetch和change的文件处理部分都合并到一起。一起来处理。增加代码可读性(注意函数的参数要传完整) def file_handler(backend_data,res=None,type='fetch'): #fetch就可以不传res和type了 if type == 'fetch': #查询功能 with open('haproxy.conf','r') as read_f: tag=False #如果没被改,那完全没有必要管它 ret=[] #为了使得fetch函数能够被别的功能调用。利用fetch函数返回值来给别的函数调用,用一个空列表存fetch查到的backend块 for read_line in read_f: if read_line.strip() == backend_data: #找到了,将tag变true #strip()默认去掉每行收尾的回车和空格。括号内可以注明专门想要去什么。 tag=True #test.py文件中补充tag的用法 continue if tag and read_line.startswith('backend'): #tag为true且遍历完一个backend段落 #haproxy.conf文件中遍历完一个之后将再次出现backend,因此可以把它作为条件 # tag=False #for循环还会继续,终止不了for循环,不如直接用break break #找着了而且遍历完了一个backend块 if tag: print('