python对文件内容的去重
前言
很多时候我们获取的数据存在大量重复,重复数据在进一步处理时会降低处理效率,且可能导致错误,因此内容去重是数据处理一个重要步骤。
实现步骤
通过list的set()和sort()函数对于数据进行顺序去重,读取文件夹中的所有文件,生成文件列表,读取文件内容列表,进行去重和按原索引顺序排序。
首先我们需要将所有需要去重的文件列举出来,通过os库的walk()函数可以获取路径下的所有文件和路径名
import os
def all_txt(dir1):
result=[]
for maindir, subdir, file_name_list in os.walk(dir1):
#print("1:",maindir)
#print("2:",subdir)
#print("3:",file_name_list)
for filename in file_name_list:
apath = os.path.join(maindir, filename)
result.append(apath)
return result
对于文件中的重复项进行去除的方法,我采用的是先把文件内容输出成列表,在通过set()和sort()函数处理从而得到有序的去重列表
def clr(dir1):
list1=[]
with open(dir1,'r') as f:
while True:
url=f.readline()
if url:
list1.append(url)
else:
break
list2=list(set(list1))
list2.sort(key=list1.index)
list1=list2
n=len(list1)
with open(dir1,'w') as f:
while n:
#print(list1[0])
f.write(list1[0])
n=n-1
del list1[0]
最后选择需要去重的文件路径就可以了,这样就将特定路径下的所有文件都进行了内容的去重处理
list3=[]
list3=all_txt(".\data")
for li in list3:
clr(li)
总结
本次实现了数据文件内容的去重功能,数据去重是数据预处理和数据库管理的重要内容,在后续的研究中会经常用到该功能。
2028



被折叠的 条评论
为什么被折叠?



