美文网首页
文件排重

文件排重

作者: blensmile | 来源:发表于2017-12-01 18:10 被阅读10次
  • 相同文件的名字和类型可能不同, 但是md5值相同
  • 使用shell获取文件大小和md5值
  • 效率并不好, 7000张照片用了接近300s, 求大神给点建议和方法
import os
import re

def _withPopen(commands):
    return os.popen(commands)

def _getMD5(string):
    items = string.split("\n")
    dictionary = {}
    repeats = set()
    patter = ".*\((.*)\) = (\\w+)"
    reg = re.compile(patter)
    for item in items:
        if(reg.match(item)):
            key = reg.sub("\\1",item)
            value = reg.sub("\\2",item)
            if(dictionary.has_key(value)):
                repeats.add(value)
            dictionary.setdefault(value,[]).append(key)
    rep = {}
    for item in repeats:
        rep[item]=dictionary[item]
    return rep


path = "input your path" 
command = "ls -psS "+path + " | grep  \"^\ *[1-9]\""
results = _withPopen(command).read()
items = results.split("\n")
dictionary = {}
repeats = set()
for item in items:
    if(re.match(" *\\d+ .+",item)):
        s = item.strip().split(" ",1)
        value = s[0]
        key = s[1]
        if(dictionary.has_key(value)):
            repeats.add(value)
        dictionary.setdefault(value,[]).append(key)
aaa = []
for key,value in dictionary.items():
    if(len(value)>1):
        aaa.append(value)
for item in aaa:
    string = ""
    for i in item:
        string += "\""+path+i+"\" "
    result = os.popen("md5 "+string).read()
    print _getMD5(result) 

相关文章

  • 文件排重

    相同文件的名字和类型可能不同, 但是md5值相同 使用shell获取文件大小和md5值 效率并不好, 7000张照...

  • 对数组列表中对象排重

    2种格式数据排重 一、对数组中对象直接排重,序号据用","分割 二、数据排重为特定格式

  • 关于身体排毒

    排毒,人人都需要 我亲自经历过四次断食排毒,每次至少七天,除了健康减重外,主要还是给身体排毒。 减重:其次排毒用半...

  • 2017-07-30

    排毒减重应该这样吃

  • 工作中遇到的概念问题:排重和排除

    排重和排除的意思 排重:数据只取一次 举例明 A:001,002,003 B:002,003,004 C:003,...

  • iOS 数据排重方案

    说明:本文只针对少量数据的排重的几种简单方案,暂不涉及海量数据. 简单结构的排重对象 1.利用 NSArray 的...

  • 一次awk疑惑分析

    今天在做数据分析的时候,需要对原始文件做排重处理,网上看到一个方式如下所示 但是按照awk模式理解,上面的语法是没...

  • 重感也是排毒

    重感也是排毒 说起来好像很好的样子 然而这次的感冒着实把我浑身上下难受了个遍。鼻塞,咳嗽,打喷嚏都不说了。忽冷忽热...

  • JAVA爬取URL,布隆算法去重

    布隆算法: 一种以BitSet(或BitMap)为基础的大数据排重算法,排重的数据类型为字符串。 实现原理(详情请...

  • nginx - 草稿

    nginx/conf 文件夹下 nginx.conf文件配置文件 nginx/sbin文件夹下nginx文件用来重...

网友评论

      本文标题:文件排重

      本文链接:https://www.haomeiwen.com/subject/dkiwbxtx.html