十二 Python檔案操作邏輯與解耦

2021-09-05 08:56:34 字數 2925 閱讀 6798

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匹配

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學習筆記(十二) 檔案操作

本節主要介紹檔案相關的操作 寫乙個檔案 writefile chen.txt hello python chen mo how are youwriting chen.txttxt open chen.txt 讀取全部內容 allcontent txt.read print allcontent h...

python基礎(十二) 檔案的操作

前言 本文主要介紹python中檔案的操作,包括開啟檔案 讀取檔案 寫入檔案 關閉檔案以及上下文管理器。python中open 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,會丟擲乙個oserror。使用語法 open 引數1,引數2,引數3 ...

Python 檔案與檔案操作

2.檔案的開啟和關閉 3.檔案的關閉 4.檔案內容讀取的常用方法 5.遍歷文字的常用方法 6.資料檔案的寫入 二.資料的格式化與處理 擴充套件 三.例項 1.檔案的型別 檔案是資料的抽象與集合。二進位制檔案 直接由位元0和1組成,沒有統一編碼,存在二進位制0和1的組織式結構 2.檔案的開啟和關閉 開...