Python文件操作逻辑与解耦
import os #导入os模块 tag=False #设置全部变量tar #解耦 #文件查询 def file_fetch(name): res = [] with open("data", "r", encoding="utf-8") as fi: #以读的模式打开文件 for i in fi: #循环文件内容 if i.find(name) > -1:#检索一行内容是否与name匹配 res.append(i) #查询到内容添加到res列表 return res #返回查询到的内容列表 #文件修改 def file_change(*args): res = select(args[0]) #获取要查询的内容 args = list(args) #将元组转换为列表 args[0] = res #将查询到的内容添加到res列表 with open("data", "r", encoding="utf-8") as f1, open("data1", "w", encoding="utf-8") as f2:#分别以读的模式打开data文件,以写的方式打开data1文件 for i in f1: #循环data的内容 tag = False #初始化tag for k in args[0]: #循环查询要修改的内容 if i == k: #判断是否是要修改的内容 tag = True #符合条件,改变tag f2.write(args[1][(args[0].index(k))])#将修改后的内容写入到data1文件 break #跳出循环 if tag == False: #判断tag是否改变 f2.write(i) #内容不是要修改的内容,直接将data内容写入到data1 os.remove("data.bak") #移除data.bak文件 os.rename("data", "data.bak") #将data修改为data.bak os.rename("data1", "data") #将修改后的文件改为data #文件删除 def file_delete(res): with open("data","r",encoding="utf-8") as f,open("data1","w",encoding="utf-8") as f1: #分别以读的模式打开data文件,以写的方式打开data1文件 for i in f: #循环data文件内容 if i!=res[0]: #判断遍历出的内容不是要删除的内容 f1.write(i) #将data文件写入到data1文件 f.close() #关闭data文件流 f1.flush() #将data1文件流刷入到硬盘 f1.close() #关闭data1文件流 if os.path.exists("data.bak"):#判断是否存在data.bak os.remove("data.bak") #data.bak存在就删除 os.rename("data","data.bak") #将data文件改名为data.bak os.rename("data1","data") #将data1文件改名为data #查询 def select(name): return file_fetch(name) #调用file_fetch()查询出内容并将内容返回 #修改 def change(*args): file_change(*args) #调用file_change()修改文件内容 #删除 def delete(name): res=select(name) #查询要修改的内容 file_delete(res) #在文件里删除参数内容 print("\033[1;41m%s\033[0m删除成功!" % name) #输出内容删除成功 #添加 def add(*args): with open("data","a",encoding="utf-8") as f: #以追加的方式打开data文件 for i in args: #遍历args参数文件内容 f.writelines(i) #将遍历的内容追加到data文件 #判断调用方式是否是本地调用 if __name__=="__main__": #查询内容 res=select("xiaoming") #修改小明用户的数据: change("小明",["user:Marry\n"," user_name:Marry,user_password:123456,user_add:上海"]) #添加Marry3用户的数据 add(["\nuser:Marry3\n"," user_name:Marry3,user_password:1234563,user_add:上海3"]) #删除Marry3用户的内容 delete("Marry3")
十二.Python文件操作逻辑与解耦
猜你喜欢
转载自blog.csdn.net/qq_39663113/article/details/85222959
今日推荐
周排行