用python刪除重複的圖片
如下目錄下有一些圖片(來自12306的驗證碼)
我怎麼把重複的圖片刪除呢?當然如果不多,比如下面幾張,都是人為複製出來的,掃一眼就可以手動刪除了,如果有10000張這樣的圖片並且命名沒有規則呢?如下圖:
那就用Python來幫我們做吧。
思路:
如果兩個檔案的大小不同,那麼這兩個檔案肯定不同,如果兩個檔案大小相同並且MD5也相同則我們判定為兩個檔案相同
# coding: utf-8
import os
import md5
def getmd5(filename):
file_txt = open(filename, 'rb').read()
m = md5.new(file_txt)
return m.hexdigest()
def main():
path = 'C:\\Users\\wu\\Desktop\\pic\\1\\'
all_size = {}
total_file = 0
total_delete = 0
for file in os.listdir(path):
total_file += 1
real_path = os.path.join(path, file)
if os.path.isfile(real_path) == True:
size = os.stat(real_path).st_size
name_and_md5 = [real_path, '']
if size in all_size.keys():
new_md5 = getmd5(real_path)
if all_size[size][1] == '':
all_size[size][1] = getmd5(all_size[size][0])
if new_md5 in all_size[size]:
os.remove(file)
print '刪除', file
total_delete += 1
else:
all_size[size].append(new_md5)
else:
all_size[size] = name_and_md5
print '檔案個數:', total_file
print '刪除個數:', total_delete
if __name__ == '__main__':
main()
執行結果:刪除的三張圖是我手動複製增加的,與預期完全一樣。
相關文章
- VSCode刪除重複的空行VSCode
- mysql 刪除重複項MySql
- 刪除oracle重複值Oracle
- JavaScript 刪除重複字元JavaScript字元
- 刪除重複資料
- 刪除重複id的記錄
- mongodb刪除重複資料MongoDB
- JavaScript 刪除字串重複字元JavaScript字串字元
- JavaScript陣列刪除重複元素JavaScript陣列
- sqlserver中刪除重複資料SQLServer
- JavaScript 刪除陣列重複元素JavaScript陣列
- Remove Duplicate Letters 刪除重複元素REM
- JavaScript刪除字串中重複字元JavaScript字串字元
- mysql 刪除表中重複的資料MySql
- 刪除排序陣列中的重複項排序陣列
- Python 在PDF中新增、替換、或刪除圖片Python
- JavaScript陣列刪除重複內容JavaScript陣列
- 解析postgresql 刪除重複資料案例SQL
- PostgreSQL刪除表中重複資料SQL
- C# 批次刪除Excel中的重複行C#Excel
- ES6刪除字串中重複的元素字串
- 刪除有序陣列中的重複項 II陣列
- Oracle中刪除表中的重複資料Oracle
- 刪除字串中的所有相鄰重複項字串
- Python 在Excel中插入、替換、提取、或刪除圖片PythonExcel
- 直播系統搭建,插入圖片、刪除圖片、設定圖片大小
- MariaDB刪除重複記錄效能測試
- MS SQL Server 刪除重複行資料SQLServer
- c#刪除有序陣列中的重複項C#陣列
- 題目:刪除排序陣列中的重複項排序陣列
- 0026-刪除有序陣列中的重複項陣列
- 我用演算法學golang(刪除有序陣列中的重複項 )演算法Golang陣列
- Excel怎麼批次刪除表格中的圖片?Excel一次性刪除表格中所有圖片教程Excel
- excel刪除重複資料保留一條 如何刪掉重複資料只留一條Excel
- 重複照片清理工具PhotoSweeper X ,如何清理重複圖片
- ORACLE批量刪除無主鍵重複資料Oracle
- sql刪除重複記錄只保留一條SQL
- 從未排序的連結串列中刪除重複項排序
- [12][02][26] 刪除排序陣列中的重複項排序陣列