【Python】批量刪除文件


上次操作

解決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%准確無誤后執行,

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM