我有一个只有一栏的文件。如何删除文件中的重复行?
最佳答案
在Unix/Linux上,根据David Locke的回答使用uniq
命令,或者根据William Pursell的评论使用sort
。
如果您需要Python脚本:
lines_seen = set() # holds lines already seen
outfile = open(outfilename, "w")
for line in open(infilename, "r"):
if line not in lines_seen: # not a duplicate
outfile.write(line)
lines_seen.add(line)
outfile.close()
更新:
sort
/uniq
组合将删除重复项,但返回带有已排序行的文件,这可能是您想要的,也可能不是。上面的Python脚本不会对行进行重新排序,而只会删除重复项。当然,要使上面的脚本也能排序,只需省略outfile.write(line)
,而是在循环之后立即执行outfile.writelines(sorted(lines_seen))
。关于python - 如何删除文件中的重复行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1215208/