Python千万级字典快速去重脚本

简介: Python千万级字典快速去重脚本

一、下载地址

https://github.com/teamssix/quchong

二、下载pyhon脚本到本地

git clone https://github.com/teamssix/quchong.git

0a2653c851af460fa595bd959398a8f1.png

三、用法

1、必须python2环境

2、把去重的文件和该python脚本放到一起

3、新建几个有重复内容的文件,放到一个与python脚本不在一起的位置/root/123

0eacb84100b54626af849e6b562bf92a.png

4、修改python脚本

#coding=utf-8
 
import sys, re, os
def file_merge():
    input_path = "/root/123/" #此处填好自己的路径,注意最后的"/"
    #使用os.listdir函数获取路径下的所有的文件名,并存在一个list中
    #使用os.path.join函数,将文件名和路径拼成绝对路径
    whole_file = [os.path.join(input_path,file) for file in os.listdir(input_path)]
    content = []
    #对于每一个路径,将其打开之后,使用readlines获取全部内容
    for w in whole_file:
        with open(w,'rb') as f:
            content = content+f.readlines()
    #构造输出的路径,和输入路径在同一个文件夹下,如果该文件夹内没有这个文件会自动创建
    output_path = os.path.join(input_path,'合并所有文件.txt')
    #将内容写入文件
    with open(output_path,'wb') as f:
        f.writelines(content)
 
def getDictList(dict):
    regx = '''[\w\~`\!\@\#\$\%\^\&\*\(\)\_\-\+\=\[\]\{\}\:\;\,\.\/\<\>\?]+'''
    with open(dict) as f:
        data = f.read()
        return re.findall(regx, data)
 
def rmdp(dictList):
    return list(set(dictList))
 
def fileSave(dictRmdp, out):
    with open(out, 'a') as f:
        for line in dictRmdp:
            f.write(line + '\n')
 
def main():
    try:
        dict = '/root/123/合并所有文件.txt'
        out = '/root/123/去重所有文件.txt'
    except Exception, e:
        print 'error:', e
        me = os.path.basename(__file__)
        exit()
 
    dictList = getDictList(dict)
    dictRmdp = rmdp(dictList)
    fileSave(dictRmdp, out)
   
if __name__ == '__main__':
    file_merge()
    main()

5、python2 quchong.py运行脚本,会在/root/123目录下生成去重文件

2d65d23f6d4748949b924e4057485923.png

6、工作原理

将当前目录下所有文件合并为一个文件:合并所有文件.txt,对该文件进行去重,最终生成去重所有文件.txt,该文件就是最后想要的文件。

禁止非法,后果自负

目录
相关文章
|
1天前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
1天前
|
数据采集 运维 Devops
探索Python编程之美:从基础到进阶自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第30天】在数字化时代的浪潮中,编程已经成为一门重要的技能。Python以其简洁明了的语法和强大的功能,成为了许多初学者的首选编程语言。本文将通过浅显易懂的语言,带领读者从Python的基础语法出发,逐步深入到面向对象编程、网络爬虫开发以及数据分析等高级应用,旨在帮助初学者构建扎实的编程基础,并激发他们进一步探索编程世界的热情。文章不仅分享实用的编程技巧,还将探讨如何将编程知识应用于解决实际问题,以期培养读者的问题解决能力和创新思维。
|
3天前
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
|
1天前
|
运维 监控 调度
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第30天】本文通过介绍如何使用Python脚本来简化和自动化日常的运维任务,旨在帮助读者提升工作效率。文章将重点介绍如何使用Python的基本库以及如何创建简单的脚本来处理文件、监控服务器状态和自动化备份过程。我们将从基础开始,逐步深入到更复杂的应用场景,使读者能够根据实际需要编写自己的自动化脚本。
|
3天前
|
数据采集 数据可视化 Java
5个有趣的Python脚本
5个有趣的Python脚本
|
1天前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
9 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
3天前
|
存储 Python 容器
python字典的常用操作方法
python字典的常用操作方法
|
4天前
|
存储 JSON JavaScript
使用 Python 将字典转换为 JSON
【8月更文挑战第27天】
14 2
|
1天前
|
运维 监控 安全
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第30天】在数字化时代,运维工作的效率至关重要。本文将介绍如何通过编写Python脚本来自动化常见的运维任务,从而提升工作效率并减少人为错误。我们将从基础的系统管理任务着手,逐步深入到复杂的自动化流程,展示Python在运维自动化中的应用价值。
|
2天前
|
存储 数据库 Python
Python 中的字典是什么?
【8月更文挑战第29天】
10 0
下一篇
云函数