需求:
當使用者輸入網域名稱的時候,顯示出來下面的記錄
當使用者需要輸入新增紀錄的時候,新增到你需要的那個網域名稱下面
# !/usr/bin/env python
# -*- coding:utf-8 -*-
def select(arg):
"""要求使用者輸入網域名稱,可以檢視webserver的子作用域
針對haproxy的配置檔案
思路:a.逐行讀取檔案
b.當我遇到backend + 網域名稱的行的時候,將其子作用域放到乙個空列表顯示給使用者看
c.再當我遇到以backend開頭的時候就結束迴圈就ok了
d.因為這個子作用域是需要顯示 的,就要拿出來,所以要特別顯示出來,要與眾不同,所以我們在這裡定義標誌位來顯示這個與眾不同
:param arg:
:return:
"""result =
flag = false
with open("haproxy.txt", "r", encoding="utf-8") as f:
for line in f :
if line.strip() == "backend %s" % arg:
flag = true
continue
if line.strip().startswith("backend"):
flag = false
if flag:
return result
ret = select("www.oldboy.org")
for i in ret :
print(i)
#++++++++++++++++++++++++++++
def sele_add(******, record):
"""增加:
a.先檢視有沒有這個網域名稱,如果沒有在最後新增就可以了
b.如果有,在檢測有沒有要和你相同的那個子作用域,
c.如果有,則pass,如果沒有就在最後一行新增
方法一:
a.查詢webserver網域名稱是使用者要的那個網域名稱
b.把查詢到的結果新增新紀錄寫入到新的檔案中
c.在繼續把除了這個網域名稱意外的作用域及其他內容寫入到新檔案中
方法二:
a.就是在下乙個新的網域名稱之前加入使用者需要加入的新紀錄
#也可以理解為先插入那行在寫backend
b.在排除是否已經存在
c.當偽**已經寫完的時候,肯定不能實現,所以我們得要修改**,那麼就需要用到標誌位 因為只在當前網域名稱後第乙個backend
前新增紀錄,所以標誌位在標記的時候需要 更改為數字
:param arg:
:return:
""""""
biaozhiwei = false
with open("haproxy.txt", "r", encoding="utf-8") as old, open("haproxy2.txt", "w", encoding="utf-8") as new:
res_list = select(******)
for line in old:
if line.strip() == "backend %s" % ******:
biaozhiwei = true#注意
new.write(line)
for i in res_list:
new.write(i )
continue
if line.strip().startswith("backend"):
biaozhiwei = false
if not biaozhiwei:
new.write(line)
"""#no.2
# 方法二:
# a.就是在下乙個新的網域名稱之前加入使用者需要加入的新紀錄
#也可以理解為先插入那行在寫backend
# b.在排除是否已經存在
#----------------
#判斷網域名稱是否存在,如果存在再次判斷記錄是否存在,如果存在,就pass,如果不存在就新增
bzw = 2
result =
a = 0
with open ("haproxy.txt", "r", encoding="utf-8") as old , open("haproxy2.txt", "w", encoding="utf-8") as new:
if ("backend %s" % ****** ) in old:
print("cunz")
for line in old:
if line.strip() == "backend %s" % ******:
bzw = 0
new.write(line)
continue
if line.strip().startswith("backend"):
bzw += 1 #因為我們會遇到很多個backend,所以就自加1 了
if bzw == 1:
if (" "*8 + record + "\n") in result:
pass
else:
new.write(" "*8 + record + "\n")
new.write(line)
else:
print("bucz")
with open("haproxy.txt", "r", encoding="utf-8") as old, open("haproxy2.txt", "w", encoding="utf-8") as new:
for line in old:
new.write(line)
new.write("\nbackend %s\n" % ******)
new.write(" "*8 + record + "\n")
sele_add("www.oldboy.orgt","1233446")
配置檔案
Python小程式之動態修改Haproxy配置檔案
需求如下 1 動態的查詢新增刪除haproxy節點資訊 2 程式功能 add 新增 del 刪除 query 查詢 3 新增時例項字串為 1 author lee sir 2import sys3 45 haproxyconf r e python練習指令碼 day3 haproxy.txt 6 h...
用python修改檔案內容修改txt內容的3種方法
用python修改檔案內容修改txt內容的3種方法 方法一 修改原檔案方式 def updatefile file old str,new str 替換檔案中的字串 param file 檔名 param old str 就字串 param new str 新字串 return file data ...
用python修改檔案內容修改txt內容的3種方法
用python修改檔案內容修改txt內容的3種方法 方法一 修改原檔案方式 def updatefile file,old str,new str 替換檔案中的字串 param file 檔名 param old str 就字串 param new str 新字串 return file data ...