上次操作
解決matplotlib文字標簽遮擋問題
https://www.cnblogs.com/hightech/p/13175470.html
照着網上教程操作,風扇轉的厲害,同時留下了不少垃圾文件,手動刪除500張圖片,真是體力活。
需求:刪除000a.png 001.png 500.png
下面寫下如何借助Python,實現快速批量刪除文件。
1、抄網上代碼
import os #導入模塊 def delete_files(): #定義函數名稱 for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路徑下的文件夾路徑,子文件夾名,所有文件名 for filename in filenames: #遍歷列表下的所有文件名 if filename!= r'aaa.png': #當文件名不為“aaa.png”時 if filename.endswith('.png'): #當文件名以.png后綴結尾時 os.remove(os.path.join(foldName, filename)) #刪除符合條件的文件 print("{} deleted.".format(filename))
2、修改路徑
# 運行程序前,記得修改主文件夾路徑! path = os.getcwd() #獲取當前工作目錄路徑 delete_files()
3、修改查找文件
# python使用正則表達式來獲取文件名的前綴方法 import re test='000.png' m=re.findall(r'(.+?)\.',test) print(m)
4、查找當前目錄下的目標文件,
不要用遞歸--->os.listdir(path)
明確自己的需求,不要盲目抄代碼。
下面是自己原創部分。
path = os.getcwd() #獲取當前工作目錄路徑 list_name=os.listdir(path) for filename in list_name: if not re.findall(r'圖\d\.png',filename): # 需要保留的文件 if re.findall(r'(\d{3}.?)\.png',filename) : # 需要刪除的文件 print(filename)
5、驗證沒有問題再加上刪除操作【防止誤刪除】
filename是上步的結果,默認最后一個。
6、代碼合並:
path = os.getcwd() list_name=os.listdir(path) n=0 del_filelst=[] for filename in list_name: if not re.findall(r'圖\d\.png',filename): # 需要保留的文件 if re.findall(r'(\d{3}.?)\.png',filename) : # 需要刪除的文件 del_filelst.append(filename) print("{} finded.".format(filename)) os.remove(os.path.join(path, filename)) #刪除符合條件的文件 print("{} deleted.".format(filename)) n+=1 print('共刪除%s個文件'%n) print('刪除文件為:\n',del_filelst)
輸出內容
實際截圖
特別說明:因為自己代碼問題導致的文件誤刪除,本人概不負責。
任何涉及刪除操作,一定要在文件查找100%准確無誤后執行,