python大文件去重_python大ip文件排重

本文介绍了一种使用Python处理大型IP地址列表的方法,通过利用Python的字典数据结构实现快速去重,并统计唯一IP数量。针对传统shell命令处理大型文件效率低下的问题,提供了一种更优的解决方案。
摘要由CSDN通过智能技术生成

1 需求:

整理个IP列表,需要将IP去重下,统计一共多少来源

本来想直接shell命令解决,简单的 sort 管道 uniq  然后wc下

无奈文件太大,条数多,处理效率不堪

文件大概5G,几亿条数据吧

2 PLAN A  未遂

shell处理:#time sort ip | uniq | wc -l

然后没啥反应了。。。。 其实是在处理中,最后被我ctrl c了

3 PLAN B

没办法写个简单的python,用列表的排重特性(需要注意文件读取的方法,不要将文件一次全部读取到内存。。。):#! /usr/bin/env python

d={}

with open('ip', 'rb') as f:

for line in f:

d[line] = 'ip'

print  len(d)time python read.py

然后就很快结束了:

4 结束

简单看下资源消耗情况:

优势还是挺明显的,以小见大吧,希望python可以帮助大家解决工作中的实际问题,不论大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值