删除电脑上重复备份的图片

Posted IT小不点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除电脑上重复备份的图片相关的知识,希望对你有一定的参考价值。

  重复备份的文件名一般含有(1),(2)等,用python实现,顺便检测一下不同目录下的相同文件名的情况,也一并删除

#!/usr/bin/env python
#coding:utf-8
"""
__title__ = ‘‘
__author__ = ‘hadoop‘
__mtime__ = ‘2016/6/18‘
"""

# 程序先运行,打印信息正确之后,取消os.remove(path)的注释,真正的删除文件

import os
from time import clock as now

def list_dir(rootDir):
    fileNum=0
    deleteNum =0
    sameName =0
    str = u(  # 删除文件名中含有(的文件,这个可以根据实际需要改成想要的名字,现在是根据文件名识别,高级算法是根据图片内容找相似
    dirs = []
    files =[]   #保存文件名
    dirs.append(rootDir)
    for root in dirs:
        for lists in os.listdir(root):
            path=os.path.join(root,lists)
            if os.path.isdir(path):
                dirs.append(path)
            else:   #是文件
                fileNum += 1
                filename = os.path.basename(path)
                if filename.decode(gbk) in files:
                    sameName += 1
                    print 删除相同文件名的文件:,path.decode(gbk)
                else:
                    files.append(filename.decode(gbk))
                    # os.remove(path)
                # print filename.decode(‘gbk‘)              #解码成gbk可以打印出中文名字,否则乱码
                # print(filename.decode(‘gbk‘).find(str))   #find返回的是找到字符串的位置,没找到返回-1
                if filename.decode(gbk).find(str)!= -1:
                    deleteNum += 1
                    print 删除文件:,path.decode(gbk)
                    # os.remove(path)
    print 文件总个数为:, fileNum
    print 删除重复文件总个数为:,deleteNum
    print 删除相同文件名总个数为:,sameName

if __name__==__main__:
    rootDir = raw_input("输入需要处理文件的根目录:")
    start=now()
    list_dir(rootDir)
    end=now()
    print  总共耗时:,end-start,

 

以上是关于删除电脑上重复备份的图片的主要内容,如果未能解决你的问题,请参考以下文章

Android 片段和活动

播放随机声音而不重复

python 批量删除重复图片和其xml文件

bash脚本通过每天保留1个备份来删除超过7天的备份[重复]

如何使用 python 用硬链接替换重复文件?

何时使用重复数据删除技术?