如何使用Python去除文本文件中的重复行并输出到新文件
Python 文本文件重复行去重实现方案
方案1:全局去重(保留首次出现顺序,适用所有重复场景)
用集合记录已经写入过的行,遍历原文件时仅写入未出现过的行,查询效率为O(1),适合绝大多数场景:
seen = set() # 可以把两个上下文管理器写在同一行简化代码 with open('one.txt', 'r') as infile, open('output.txt', 'w') as outfile: for line in infile: # 仅当该行从未写入过才执行输出操作 if line not in seen: seen.add(line) outfile.write(line)
这个方案不管重复行是不是连续出现,都能保证最终文件中每行只出现一次,且保留第一次出现的顺序,完全匹配你的需求。
方案2:连续重复行去重(超低内存占用,适合超大文件)
如果你的文件中重复行都是连续出现的(和你给出的示例一致),可以只记录上一行内容,不用存储所有历史行,内存占用几乎为0:
last_line = None with open('one.txt', 'r') as infile, open('output.txt', 'w') as outfile: for line in infile: if line != last_line: outfile.write(line) last_line = line
处理后输出结果
针对你给出的one.txt内容,两种方案输出的output.txt内容完全一致:
822.25 111.48 883.59 256.68 8.6 123.68 467.27 276.69 0.0 186.77 165.62 375.0 724.76 177.83 923.52 316.78 438.03 148.5 540.88 198.54 511.99 170.97 571.74 215.81
内容的提问来源于stack exchange,提问作者Soodep Dhakal
相关产品推荐
相关产品推荐

