Python實現(xiàn)刪除重復視頻文件的方法詳解
Python自動化辦公之刪除重復的視頻文件
獲取所有文件路徑
import os import filecmp file_list=[] new_list=[] path=r"F:\FileRecv\刪除文件測試" for a,b,c in os.walk(path): # print(a) for j in c: file=a+'\\'+j # print(file) file_list.append(file)
效果圖:
代碼說明:使用os.walk(path)方法來獲取所有文件名,循環(huán)添加進一個列表。
獲取所有重復文件,添加到一個列表
# 同時遍歷file_list列表的下標和元素 for index,file_name1 in enumerate(file_list): # 每循環(huán)一次就切片生成file_name1之后的列表file_list2 file_list2 = file_list[index +1:] # 如果生成的file_list2列表里只有一個文件,兩兩對比不成立時 就停止循環(huán) if len(file_list2) == 1: break # 遍歷每一個file_list2 下的文件與file_name1文件做比對 for file_name2 in file_list2: res1 = filecmp.cmp(file_name1,file_name2, shallow=True) # print(f'{file_name1}和{file_name1}對比') ??????? #如果對比相同 if res1: #添加進準備刪除的集合 new_set.add(file_name1) print(new_set)
效果圖:
代碼說明:這里主要是循環(huán)取值的應用,以及用到了filecmp這個文件對比庫。
刪除重復文件
#刪除集合里的文件 for i in new_set: os.remove(i)
效果圖:
刪除前
刪除后
filecmp庫知識拓展:
filecmp是python內(nèi)置的一個模塊,用于比較文件及文件夾的內(nèi)容。
filecmp由兩個主要的方法,filecmp.cmp(f1, f2, [shallow])和filecmp.cmpfiles(a, b, common, [shallow])。
1、如果單純比較兩個文件是否相同,可以通過filecmp.cmp(f1, f2, shallow=True)實現(xiàn)。其中f1、f2是文件名,shallow=True,則通過文件的元信息比較是否一致,如果是False,則比較兩個文件內(nèi)容。
2、如果非遞歸比較兩個目錄中的一組文件,可以選擇通過filecmp.cmpfiles(dir1, dir2, common, shallow=True)實現(xiàn)。其中dir1、dir2是兩個文件夾,common是list,里面是需要比較的共同文件名稱。
到此這篇關于Python實現(xiàn)刪除重復視頻文件的方法詳解的文章就介紹到這了,更多相關Python刪除重復視頻文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
RuntimeError:CUDA?out?of?memory多種場景下的解決方案
若遇到RuntimeError:?CUDA?out?of?memory錯誤,通常意味著GPU內(nèi)存不足以處理當前的計算需求,本文就來介紹一下多種場景下的解決方案,具有一定的參考價值,感興趣的可以了解一下2024-02-02python?tornado協(xié)程調(diào)度原理示例解析
這篇文章主要為大家介紹了python?tornado協(xié)程調(diào)度原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09python報錯unexpected?indent的解決辦法
這篇文章主要給大家介紹了關于python報錯unexpected?indent的解決辦法,在python中出現(xiàn)"Unexpected indent"可能是代碼的縮進出現(xiàn)問題,需要的朋友可以參考下2023-06-06PyQt5每天必學之QSplitter實現(xiàn)窗口分隔
這篇文章主要介紹了PyQt5每天必學之窗口分隔,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04