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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: nhdta系列媚药系列 | 亚洲一区二区福利视频 | 二次元美女内裤凹陷太深 | 久久成人永久免费播放 | 我的家教老师在线观看 | a毛片在线免费观看 | 日韩欧美中文字幕一区 | 麻豆找网服 | 国产男女爱视频在线观看 | 欧美在线一级片 | 国产三级自拍视频 | 亚洲图片 自拍偷拍 | 国产精品久久久久久久久久久久 | 91啪在线观看国产在线 | 男人爱看的网站 | 奇米影视小说 | 久久无码AV亚洲精品色午夜麻豆 | 亚洲福利电影一区二区? | 不良研究所地址一 | 天美传媒影视在线免费观看 | 亚洲欧美精品天堂久久综合一区 | 大ji吧快给我别停受不了视频 | 欧美一级片在线免费观看 | 高清国产在线 | 手机在线观看精品国产片 | 亚洲成人影院在线 | 亚洲 另类 欧美 变态屎尿 | 91动漫在线观看 | 午夜免费小视频 | 91动漫在线观看 | 成人软件18免费 | 色老板在线播放 | 精品欧美一区二区三区在线观看 | 精品久久久久中文字幕日本 | 国内精品久久久久影院男同志 | 91成人免费观看 | 爸爸的宝贝小说全文在线阅读 | 荡娃艳妇系列小说 | 高清在线观看免费入口 | 精灵之森高清在线 | 99在线免费视频 |