python--------文件处理之增删改查--------作业用函数
1,刚学到函数,用的还不熟练,只能以简单的函数调用来实现.
2, 还是有bug。
3,代码:
1 def add(): 2 ''' 3 添加一条语句 4 5 ''' 6 7 choice = input("please your input is {} : ") 8 # {"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}} 9 dic = eval(choice) # 把字符串转成字典 10 title = dic['backend'] # "www.oldboy20.org" 11 record = dic['record'] 12 r_s = ' server %s weight %s maxconn %s\n' \ 13 % (record['server'], record['weight'], record['maxconn']) 14 15 with open("haproxy.conf", encoding="utf-8") as f_read, open("test3", mode="w", encoding="utf-8") as w_read: 16 for line in f_read: 17 w_read.write(line) 18 if line.startswith('backend') and title in line: 19 # print('11111>') 20 w_read.write(r_s) 21 # w_read.write('=====>') 22 w_read.flush() 23 24 25 26 def search(): 27 ''' 28 查询 29 30 ''' 31 32 list = [] 33 flag = False 34 input1 = input("plesae input 'www.oldboy1.org' :") 35 with open("haproxy.conf", encoding="utf-8") as f_read: 36 for line in f_read: 37 if line.startswith("backend") and input1 in line: 38 flag = True 39 40 continue 41 42 if line.startswith("backend"): 43 break 44 if flag: 45 list.append(line.strip()) 46 print("hello".center(50, "-")) 47 48 for i in list: 49 print(i) 50 51 52 53 def delete(): 54 ''' 55 删除 56 57 ''' 58 59 choice = input("please your input is {} :") 60 # {"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,maxconn:3333}} 61 dic = eval(choice) # 把输入的字符串转成字典 62 tltle = dic["backend"] 63 tetle1 = dic["record"] #这个没有用 64 with open("haproxy.conf", encoding="utf-8") as f_read, open("test5", "w", encoding="utf-8") as w_write: 65 66 for line in f_read: 67 w_write.write(line) 68 if line.startswith("backend") and tltle in line: 69 # w_write.write(line) 70 break 71 72 73 def change(): 74 ''' 75 修改一条语句 76 77 ''' 78 79 choice = input("please your input is {} :") 80 # {"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}} 81 dic = eval(choice) #把输入的字符串转成字典 82 tltel = dic["backend"] 83 tltel1 = dic["record"] 84 dic["record"]["server"] = "0000" 85 dic["record"]["weight"] = "0000" 86 dic["record"]["maxconn"] = "0000" 87 # print(dic) 88 #格式化字符串 89 r_s = " server %s weight %s maxconn %s" % (tltel1["server"], tltel1['weight'], tltel1["maxconn"]) 90 with open("haproxy.conf", encoding="utf-8") as f_read, open("test6", mode="w", encoding="utf-8") as w_write: 91 for line in f_read: 92 w_write.write(line) # 把line中的字符串写到w_write中 93 if line.startswith("backend") and tltel in line: #判断 line中字符串否以“backend”开头,并且满不满足tetle在这行 94 w_write.write(r_s) #把字符串写入到w_rite中 95 break #跳出循环 96 97 98 def can_msg(): 99 ''' 100 菜单 101 102 ''' 103 msg = ''' 104 1,search: 查询 105 2,add : 添加 106 3,delete: 删除 107 4,change: 修改 108 0,exit(0):退出 109 110 ''' 111 print(msg) 112 113 def main1(): 114 ''' 115 主函数 116 117 ''' 118 while True : 119 can_msg() 120 choice = input("please your input choice or exit(0):") 121 if choice == "0" : 122 print("good bye".center(50,"-")) 123 print("再_见".center(50,"-")) 124 exit() 125 elif choice == "1": 126 search() 127 elif choice == "2": 128 add() 129 elif choice == "3": 130 delete() 131 elif choice == "4": 132 search() 133 else: 134 print("请输入数字 谢谢 ".center(50, "-")) 135 continue 136 137 138 139 140 141 if __name__ == '__main__': 142 main1()