一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python刪除本地夾里重復文件的方法

python刪除本地夾里重復文件的方法

2021-02-27 00:39許西城 Python

這篇文章主要為大家詳細介紹了python刪除本地夾里重復文件的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

上次的博文主要說了從網上下載圖片,于是我把整個笑話網站的圖片都拔下來了,但是在拔取的圖片中有很多重復的,比如說頁面的其他圖片、重復發布的圖片等等。所以我又找了python的一些方法,寫了一個腳本可以刪除指定文件夾里重復的圖片。

一、方法和思路

1.比對文件是否相同的方法:hashlib庫里提供了獲取文件md5值的方法,所以我們可以通過md5值來判定是否圖片相同

2.對文件的操作:os庫里有對文件的操作方法,比如:os.remove()可以刪除指定的文件, os.listdir()可以通過指定文件夾路徑獲取文件夾里所有文件的文件名

思路:通過獲取指定文件夾的所有文件名,然后匹配為一個絕對路徑的列表,循環的比對每個文件的md5值,如果md5值重復,則刪除這個文件

二、代碼實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import os
import hashlib
import logging
import sys
 
def logger():
 """ 獲取logger"""
 logger = logging.getLogger()
 if not logger.handlers:
 # 指定logger輸出格式
 formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')
 # 文件日志
 file_handler = logging.FileHandler("test.log")
 file_handler.setFormatter(formatter) # 可以通過setFormatter指定輸出格式
 # 控制臺日志
 console_handler = logging.StreamHandler(sys.stdout)
 console_handler.formatter = formatter # 也可以直接給formatter賦值
 # 為logger添加的日志處理器
 logger.addHandler(file_handler)
 logger.addHandler(console_handler)
 # 指定日志的最低輸出級別,默認為WARN級別
 logger.setLevel(logging.INFO)
 return logger
 
def get_md5(filename):
 m = hashlib.md5()
 mfile = open(filename, "rb")
 m.update(mfile.read())
 mfile.close()
 md5_value = m.hexdigest()
 return md5_value
 
def get_urllist():
 #替換指定的文件夾路徑即可
 base = ("F:\\pythonFile\\煎蛋網\\無聊圖\\jpg\\")
 list = os.listdir(base)
 urlList=[]
 for i in list:
 url = base + i
 urlList.append(url)
 return urlList
 
if __name__ == '__main__':
 log = logger()
 md5List =[]
 urlList =get_urllist()
 for a in urlList:
 md5 =get_md5(a)
 if (md5 in md5List):
  os.remove(a)
  print("重復:%s"%a)
  log.info("重復:%s"%a)
 else:
  md5List.append(md5)
  # print(md5List)
  print("一共%s張照片"%len(md5List))

然后我們可以通過日志來查看到底哪些文件是重復的,不過對于一些超大文件的話,md5值的獲取會有一些變化,不過處理一般的小文件都可以的,只需要替換我的路徑,就可以在你電腦上運行啦。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/CCGGAAG/article/details/72877076

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女张开腿让我了一夜 | 秋霞理论在一l级毛片 | 日韩成人一区ftp在线播放 | 国产亚洲精品美女久久久 | 成人免费一区二区三区在线观看 | 唯美 清纯 另类 亚洲制服 | 免费a视频在线观看 | 五月天淫 | 国内精品久久久久久久久 | 四虎视屏 | 色佬头 | 国产成人h综合亚洲欧美在线 | 福利社在线免费观看 | 天天色影视综合网 | h高潮娇喘抽搐 | 激情视频网址 | 成年女人免费 | 亚洲高清无在码在线电影 | 十大看黄网站 | 1024国产看片在线观看 | 久久久久琪琪精品色 | 色愉拍亚洲偷自拍 | 欧美一区二区免费 | 男生和女生搞逼逼 | 偷偷狠狠的日日高清完整视频 | 精品国产人成亚洲区 | 日本一片免费观看高清完整 | 国产青草视频在线观看免费影院 | 久久99精国产一区二区三区四区 | 超强台风免费观看完整版视频 | 亚洲精品一二三四区 | 国产亚洲精品一区二区在线播放 | 国产拍拍视频一二三四区 | 肉大捧一进一出视频免费播放 | 四虎永久免费地址ww417 | 欧美brazzers| 精品国产乱码久久久久久免费流畅 | 四虎影院新地址 | 护士被多人调教到失禁h | 男人都懂www深夜免费网站 | 91禁漫|