我有一个只有一栏的文件。如何删除文件中的重复行?

最佳答案

在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/

10-12 18:10