python如何统计txt重复的行

python如何统计txt重复的行

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:6

用户关注问题

Q
如何快速找出txt文件中重复的行?

我有一个很大的txt文件,想知道有没有简单的方法用Python快速查找出所有重复出现的行。

A

使用Python中的Counter模块来统计重复行

可以使用collections模块中的Counter类。先将txt文件按行读入一个列表,然后用Counter统计每行的出现次数,最后筛选出现次数超过1的行即可。示例代码如下:

from collections import Counter
with open('file.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()
counter = Counter(lines)
duplicates = {line: count for line, count in counter.items() if count > 1}
for line, count in duplicates.items():
    print(f'行内容:{line.strip()} 出现次数:{count}')
Q
除了Counter,Python还有哪些方法能统计txt重复行?

我想尝试不同的技术手段来统计重复行,哪些Python技术或思路比较合适?

A

利用字典或集合进行重复行统计

可以遍历txt文件的每一行,利用字典来记录每行的次数。如果需要只知道哪些行重复,也可以用集合来存储已出现的行,发现再次出现时即为重复。示例代码:

line_count = {}
with open('file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        line = line.strip()
        line_count[line] = line_count.get(line, 0) + 1
duplicates = {line: count for line, count in line_count.items() if count > 1}
print(duplicates)
Q
如何高效处理超大txt文件中的重复行统计?

我的txt文件非常大,内存有限,用Python统计重复行时如何避免内存溢出?

A

采用分块读取和哈希技术处理大文件重复行统计

对大文件应避免一次性读取到内存,采用按行逐条处理。可以使用字典配合哈希函数存储行信息,并定期写入临时文件或利用数据库辅助统计。此外,借助Python生成器和磁盘持久化技术,可有效减少内存使用。示例方案:

  1. 使用with open逐行读取文件。
  2. 对每行计算哈希,存入字典,统计出现次数。
  3. 当字典大小达到一定阈值时,将结果输出或中间处理,清空字典。

这样可渐进式处理文件,保证内存占用稳定。