当前位置: 首页 > news >正文

济南做html5网站建设/怎么做网络平台

济南做html5网站建设,怎么做网络平台,长春建站的费用,app研发风险问题是这样的:现在服务器端有两个文件夹,里面的文件都是文件名为MD5后的字符串并且没有文件后缀。这两个文件夹里有少部分重复的文件(指文件名重复即认为重复)并且少量文件存在后缀名(这个也是不需要的) 一…

问题是这样的:现在服务器端有两个文件夹,里面的文件都是文件名为MD5后的字符串并且没有文件后缀。这两个文件夹里有少部分重复的文件(指文件名重复即认为重复)并且少量文件存在后缀名(这个也是不需要的)

一共有200万到300万的文件,20多个GB。

如果考虑速度的话最好可以使用hash表,但是几百万的文件建立map要消耗很大的空间,这里牺牲一定的准确性采用布隆过滤器

#!/usr/bin/python
# -*- coding: utf-8 -*-
# author:shqimport BitVector
import osclass Hash(object):  # 哈希函数用来将元素映射到位向量中def __init__(self, bit_size, seed):self.bit_size = bit_sizeself.seed = seeddef hash(self, string):result = 0for i in xrange(len(string)):result += self.seed * result + ord(string[i])  # 哈希值计算公式# 把hash值映射到比特向量中,&位运算保证返回的整数小于bit_size-1(不等0时)return (self.bit_size - 1) & resultclass Bloom_Filter(object):'''这个布隆过滤器首先需要:1、一个位向量2、n个种子用来生成hash函数3、n个hash函数(用来映射位置)'''def __init__(self):self.BIT_SIZE = 1 << 21self.bitset = BitVector.BitVector(size=self.BIT_SIZE)self.seeds = [12, 23, 34, 45, 56, 67, 78, 89]self.hash_fun_list = [Hash(self.BIT_SIZE, seed) for seed in self.seeds]def insert(self, string):for hash_fun in self.hash_fun_list:i = hash_fun.hash(string)self.bitset[i] = 1def judge_exist(self, string):if string is None:return Falsefor hash_fun in self.hash_fun_list:i = hash_fun.hash(string)if self.bitset[i] == 0:return Falsereturn Truedef get_file_name(file_dir_1, file_dir_2):''':param file_dir_1: 存储进过滤器的文件夹:param file_dir_2: 被查找的文件夹:return:'''test_BF = Bloom_Filter()# 文件夹1的文件映射进过滤器for _, _, files in os.walk(file_dir_1):for file in files:if '.' in file:  # 去除后缀os.rename(file_dir_1 + '/' + file, file_dir_1 + '/' + file.split('.')[0])file = file.split('.')[0]test_BF.insert(file)# 判断文件夹2的文件是存在于过滤器for _, _, files in os.walk(file_dir_2):for file in files:if '.' in file:  # 去除后缀os.rename(file_dir_2 + '/' + file, file_dir_2 + '/' + file.split('.')[0])file = file.split('.')[0]if test_BF.judge_exist(file):change_time_1 = os.stat(file_dir_1 + '/' + file).st_mtimechange_time_2 = os.stat(file_dir_2 + '/' + file).st_mtimeif change_time_1 > change_time_2:print u'删除:',file_dir_2 + '/' + fileos.remove(file_dir_2 + '/' + file)else:print u'删除:', file_dir_1 + '/' + fileos.remove(file_dir_1 + '/' + file)
http://www.lbrq.cn/news/1616401.html

相关文章:

  • 福建网站制作公司/长沙seo运营
  • 网站界面设计的发展/网站软件下载大全
  • 网站界面设计的要求/sem竞价培训班
  • 哪些网站做外链好/深圳纯手工seo
  • 公司注册网站及流程/免费注册
  • 曲周企业做网站推广/外贸建站优化
  • 南宁公司网站建设/网站如何优化一个关键词
  • 网站开发培训学院/苏州百度快速排名优化
  • 只做网站的人员工资/网络营销有哪些
  • 猪八戒做网站要多少钱/今天发生了什么重大新闻
  • dw2019怎么做网站/优化排名案例
  • 制作一个静态网站源码/做推广公司
  • 海南综合网站两学一做电视夜校/厦门seo培训
  • 中企动力是骗子公司吗/优化师培训机构
  • wordpress 第三方应用/上海seo博客
  • wordpress站内查找/能翻到国外的浏览器
  • 最新裁员公司名单/aso优化怎么做
  • 一个微信可以做两个网站支付/国外十大免费服务器和域名
  • 网站建设方案应该怎么做/如何做电商
  • 网站优化的推广/网站换友链平台
  • 计算机专业网站建设实训日志/篮网目前排名
  • cloudflare做侵权网站/怎么样在百度上推广自己的产品
  • 网站设计心得/榆林seo
  • 建设企业网站的价格/网站维护费用一般多少钱
  • 网站前后端的关系/网络营销推广策划的步骤
  • 企业网站制作 南京/seo代理计费系统
  • 国外买域名的网站/如何做网站营销推广
  • wordpress搭建微信小程序/郑州seo外包公司哪家好
  • 租网站空间/今天头条新闻100条
  • 任丘哪里做网站/爱站工具包的模块
  • 【深度学习②】| DNN篇
  • 第七章 愿景12 小萍分享《人性的弱点》
  • linux81 shell通配符:[list],‘‘ ``““
  • 什么是三防平板电脑?三防平板有什么作用?
  • 用 TensorFlow 1.x 快速找出两幅图的差异 —— 完整实战与逐行解析 -Python程序图片找不同
  • 【科普】贝叶斯神经网络与分形神经网络