python(13) 檔案處理應用 增刪改查

2022-09-15 04:45:12 字數 4749 閱讀 7171

使用者選擇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=

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所在行寫入列表中

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行寫入列表中

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: #第三步,將網域名稱所在的行放入列表中

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()

python13檔案 13 Python 檔案

概述 嚴格講,檔案不屬於資料型別。02操作 1 開啟檔案 1 基本語法 file open 檔名 mode 引數mode模式可選引數,分為 r讀 w寫 a追加 r w a後面可接第二個引數,b標書二進位制,f open data.bin rb 2 完整語法格式為 open file,mode r b...

python 13 檔案操作 之二

一 檔案操作的常用方法 1 read 從游標位置開始讀取整個檔案剩下的內容,注意是從游標位置開始,不一定是讀取整個檔案。第一次讀取 f open test.txt r print f.read f.close 自恐多情損梵行,入山又怕誤傾城.世間安得雙全法,不負如來不負卿.第二次讀取 f open ...

python基礎(13) 檔案

檔案的基本方法 可使用函式open,它位於自動匯入的模組io中。1.open函式將檔名作為唯一必不可少的引數,返回乙個可讀取的檔案物件 open a.py a.py mode r encoding cp936 2.如果要寫入檔案,必須通過指定模式來顯式地指出這一點 3.若不存在該檔案,則會產生如下錯...