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