一般我们从网上下下来的数据都很杂乱的,什么样的情况都有,不利于我们整理,所以在拿到数据的时候我们会先做一遍数据清理,把垃圾数据清理掉。
今天我们拿QQ数据做示范。
我们命令行是怎么看数据!
[Asm] 纯文本查看 复制代码 more zy.txt
#然后空格进行翻页
效果如图:
从数据中得知:
---- 中间4个-
左边是账号,右边是密码
目前QQ最多就11位,密码最长16位,所以数据中位数最多31位(4+11+16),大于的都是垃圾(第一轮筛选)
我先用python 读取QQ操作
[Asm] 纯文本查看 复制代码 import codecs
filepath=r"C:\Users\Administrator\Desktop\zy.txt"
file=codecs.open(filepath,"rb","gbk","ignore")#按照指定编码
mylist=file.readlines()#返回一个list,读取到内存
#savefilepath="C:\Users\Administrator\Desktop\zy1.txt"
for line in mylist:
QQlist=line.split('----')
print(QQlist[1])
注:此方法是读取到内存,所以很占空间,会很卡。
数据中我们看到很多垃圾数据,我们看下垃圾数据
[Asm] 纯文本查看 复制代码 import codecs
filepath=r"C:\Users\Administrator\Desktop\zy.txt"
file=codecs.open(filepath,"rb","gbk","ignore")#按照指定编码
mylist=file.readlines()#返回一个list,读取到内存
#savefilepath="C:\Users\Administrator\Desktop\zy1.txt"
for line in mylist:
QQlist=line.split('----')
if len(line)>31:
print(line)#打印垃圾数据
进行QQ清洗,在分别保存账号文本和密码文本。
[Asm] 纯文本查看 复制代码 import codecs
filepath=r"C:\Users\Administrator\Desktop\zy.txt"
file=codecs.open(filepath,"rb","gbk","ignore")#按照指定编码
mylist=file.readlines()#返回一个list,读取到内存
savegoodfilepath=r"C:\Users\Administrator\Desktop\zyQQGood.txt"
savebadfilepath=r"C:\Users\Administrator\Desktop\zyQQbad.txt"
filegood=open(savegoodfilepath,"wb")
filebad=open(savebadfilepath,"wb")
for line in mylist:
if len(line)>31 or len(line)<=15:#(4+5+6)
filebad.write(line.encode("utf-8"))
else:
QQlist = line.split('----')
if len(QQlist)==2:
filegood.write(line.encode("utf-8"))
else:
filebad.write(line.encode("utf-8"))
filebad.close()
filegood.close()
效果图:
附件:
中央纪委pyhon数据清理.zip
(3.81 KB, 下载次数: 27)
|