码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-18 18:37:04      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

  重复备份的文件名一般含有(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,

 

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

标签:

原文地址:http://www.cnblogs.com/luolizhi/p/5596592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!