如何删除文件中的重复行?

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



慕少森
浏览 597回答 3
3回答

繁花不似锦

在Unix / Linux上,uniq根据David Locke的答案使用命令,或sort根据William Pursell的注释使用命令。如果您需要Python脚本:lines_seen = set() # holds lines already seenoutfile = 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)在循环之后省去and,然后立即执行即可outfile.writelines(sorted(lines_seen))。

jeck猫

uniqlines = set(open('/tmp/foo').readlines())这将为您提供唯一行的列表。将其写回到某个文件将很容易:bar = open('/tmp/bar', 'w').writelines(set(uniqlines))bar.close()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python