为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕少森 2019-10-29 14:17:02
我有一个只有一栏的文件。如何删除文件中的重复行?
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

在Unix / Linux上,uniq根据David Locke的答案使用命令,或sort根据William Pursell的注释使用命令。


如果您需要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)在循环之后省去and,然后立即执行即可outfile.writelines(sorted(lines_seen))。


查看完整回答
反对 回复 2019-10-29
?
jeck猫

TA贡献1909条经验 获得超7个赞

uniqlines = set(open('/tmp/foo').readlines())

这将为您提供唯一行的列表。


将其写回到某个文件将很容易:


bar = open('/tmp/bar', 'w').writelines(set(uniqlines))


bar.close()


查看完整回答
反对 回复 2019-10-29
  • 3 回答
  • 0 关注
  • 593 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信