用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - python代码库

重复文件杀手

2015-01-16 作者: 宅教授举报

[python]代码库

# -*- coding: cp936 -*-
import os
import hashlib


def file2md5(filename):
    fp = open(filename)
    data = fp.read()
    digest = hashlib.md5(data).digest()
    fp.close()
    return digest


# 返回指定目录下所有的文件名的迭代器,不递归目录
def filenames(dir_name):
    return ('%s/%s' % (dir_name, item) for item in os.listdir(dir_name) if os.path.isfile('%s/%s' % (dir_name, item)))


# 返回指定目录下所有文件名的迭代器,递归子目录
def xxx(dir_name):
    for item in os.listdir(dir_name):
        path = '%s/%s' % (dir_name, item)
        if os.path.isfile(path):
            yield path
        elif os.path.isdir(path):
            for x in xxx(path):
                yield x


items = xxx('.')
# 对每一个文件计算MD5
items = [(file2md5(item), item) for item in items]
# 删除重复文件
items.sort()
last = ''
for item in items:
    if last == item[0]:
        print 'remove file:', item[1]
        os.remove(item[1])
    else:
        last = item[0]


网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...