国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python刪除本地夾里重復(fù)文件的方法

2020-02-15 21:35:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

一、方法和思路

1.比對(duì)文件是否相同的方法:hashlib庫(kù)里提供了獲取文件md5值的方法,所以我們可以通過(guò)md5值來(lái)判定是否圖片相同

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

思路:通過(guò)獲取指定文件夾的所有文件名,然后匹配為一個(gè)絕對(duì)路徑的列表,循環(huán)的比對(duì)每個(gè)文件的md5值,如果md5值重復(fù),則刪除這個(gè)文件

二、代碼實(shí)現(xiàn)

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) # 可以通過(guò)setFormatter指定輸出格式   # 控制臺(tái)日志   console_handler = logging.StreamHandler(sys.stdout)   console_handler.formatter = formatter # 也可以直接給formatter賦值   # 為logger添加的日志處理器   logger.addHandler(file_handler)   logger.addHandler(console_handler)   # 指定日志的最低輸出級(jí)別,默認(rèn)為WARN級(jí)別   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//煎蛋網(wǎng)//無(wú)聊圖//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("重復(fù):%s"%a)    log.info("重復(fù):%s"%a)   else:    md5List.append(md5)    # print(md5List)    print("一共%s張照片"%len(md5List)) 

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东辽县| 阿克陶县| 罗城| 新晃| 卢龙县| 扶风县| 和平县| 西乌珠穆沁旗| 安达市| 科技| 绍兴市| 营山县| 余姚市| 镇远县| 剑川县| 潍坊市| 敦化市| 和龙市| 三原县| 清水河县| 陈巴尔虎旗| 潜江市| 乐安县| 洞头县| 政和县| 湘潭县| 西城区| 上杭县| 印江| 武邑县| 奈曼旗| 循化| 泰顺县| 柳河县| 波密县| 林州市| 民勤县| 朔州市| 葵青区| 莫力| 莫力|