import os def search(data): #查询 print(\'查询功能%s\'%data) ret=[] backend_data=\'backend %s\'%data with open (\'test2\',\'r\') as read_test2: tag=False for read_line in read_test2: if read_line.strip()==backend_data:#去除/n与/t tag=True continue#注意格式对齐 if read_line.startswith(\'backend\') and tag: break if tag: # print(read_line,end=\'\') #将所有下面的都打印出来 ret.append(\'%s\n\'%read_line.strip()) #增加\n增加换行 return ret def add(data):#增加 print(\'增加功能=%s\'%data) def change(data):#修改 # print(\'修改功能将更改为%s\'%data) print(\'用户输入的是%s\'%data) backend=\'backend %s\'%data[0] res=search(data[0]) print(\'来自change函数查询到内容\', res) if not res : return \'查询到记录不存在\' else: res.append(data[1]+\'\n\') print(res) res.insert(0,\'%s\n\'%backend) #第一行增加backend sxj with open(\'test2\',\'r\') as read_f,\ open (\'test3\',\'w\') as write_f: tag=False has_write=False for read_line in read_f: if read_line.strip()==backend : tag=True continue if tag and read_line.startswith(\'backend\'): tag=False if not tag: write_f.write(read_line) else: if not has_write: for record in res: write_f.write(record) has_write=True#用状态的变化控制流程 os.rename(\'test3\',\'test2_new\')#更改文件名 def delete(data):#删除 print(\'删除功能:删除%s\'%data) if __name__==\'__main__\': #一个规范python中只写功能,执行语句放到if判断下面 msg=\'\'\' 1:查询 2:添加 3:修改 4:删除 5:退出 \'\'\' func_dic={ \'1\':search, \'2\':add, \'3\':change, \'4\':delete } while True: print(msg) choice=input("请输入选项:").strip()#strip默认去除空格与回车 if not choice:continue #如果为空则继续循环打印msg if choice==\'5\':break#如果选择5 退出,则break data=input(\'请输入data:\').strip()#input输入的是字符串 if choice != \'1\':#用户输入的都是字符串 VIP data=eval(data) #如果输入的是字典则自动转化 res=func_dic[choice](data) print(\'最终结果是》》》》\',res)