gpt4 book ai didi

python删除本地夹里重复文件的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python删除本地夹里重复文件的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

上次的博文主要说了从网上下载图片,于是我把整个笑话网站的图片都拔下来了,但是在拔取的图片中有很多重复的,比如说页面的其他图片、重复发布的图片等等。所以我又找了python的一些方法,写了一个脚本可以删除指定文件夹里重复的图片.

1、方法和思路 。

1.比对文件是否相同的方法:hashlib库里提供了获取文件md5值的方法,所以我们可以通过md5值来判定是否图片相同 。

2.对文件的操作:os库里有对文件的操作方法,比如:os.remove()可以删除指定的文件, os.listdir()可以通过指定文件夹路径获取文件夹里所有文件的文件名 。

思路:通过获取指定文件夹的所有文件名,然后匹配为一个绝对路径的列表,循环的比对每个文件的md5值,如果md5值重复,则删除这个文件 。

2、代码实现 。

?
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 。

最后此篇关于python删除本地夹里重复文件的方法的文章就讲到这里了,如果你想了解更多关于python删除本地夹里重复文件的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com