前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python删除同一个文件夹下的重复文件代码

Python删除同一个文件夹下的重复文件代码

原创
作者头像
用户7999227
修改2021-11-03 10:35:18
6400
修改2021-11-03 10:35:18
举报
文章被收录于专栏:Java小王子Java小王子
代码语言:javascript
复制
#!/usr/bin/env python
coding: utf-8
import md5
import os
from time import clock as now
def getmd5(filename):
    file_txt = open(filename, 'rb').read()
    m = md5.new(file_txt)
    return m.hexdigest()
def main():
    path = u'C:\aa\bb\cc\dd'
    all_md5 = {}
    all_size = {}
    total_file = 0
    total_delete = 0
    start = now()
    for file in os.listdir(path):
        total_file += 1
        real_path = os.path.join(path, file)
        if os.path.isfile(real_path) == True:
            size = os.stat(real_path).st_size
            name_and_md5 = [real_path, '']
            if size in all_size.keys():
                new_md5 = getmd5(real_path)
                if all_size[size][1] == '':
                    all_size[size][1] = getmd5(all_size[size][0])
                if new_md5 in all_size[size]:
                    total_delete += 1
                    print u'删除', file
                    try:
                        os.remove(os.path.join(path, file))
                    except:
                        print 'No such file: %s' % file
                else:
                    all_size[size].append(new_md5)
            else:
                all_size[size] = name_and_md5
    end = now()
    time_last = end - start
    print u'文件总数: ', total_file
    print u'删除个数: ', total_delete
    print u'耗时: ', time_last, '秒'
if name == 'main':
    main()</pre>
 参考:http://developer.51cto.com/art/201205/334378.htm  
 原文没有执行删除文件的操作:  
try:
    os.remove(os.path.join(path, file))
except:
    print 'No such file: %s' % file

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档