如何用Python筛选重复6次的序列并保存至TXT文件?
实现方法
要高效处理大规模序列文件,核心是先统计每个序列的出现次数,再筛选目标序列。以下是具体实现:
代码实现
from collections import Counter # 统计序列出现次数 sequence_counts = Counter() with open('IDs.txt', 'r') as f: for line in f: # 去掉每行末尾的换行符和空白字符 seq = line.strip() if seq: # 跳过空行 sequence_counts[seq] += 1 # 筛选出重复6次的序列 target_sequences = [seq for seq, count in sequence_counts.items() if count == 6] # 写入结果文件 with open('target_sequences.txt', 'w') as f: for seq in target_sequences: f.write(f"{seq}\n")
关键说明
- 使用
collections.Counter是最优选择,它专门用于高效统计可哈希对象的出现次数,处理10万级唯一序列完全无压力。 - 逐行读取文件,避免一次性加载整个文件到内存,即使文件非常大也能稳定运行。
strip()必须添加,否则每行末尾的换行符会被当成序列的一部分,导致统计错误。- 加入空行判断,防止文件中存在空行干扰统计结果。
超大规模文件优化(可选)
如果文件大到内存无法容纳所有统计结果,可以用普通字典手动统计(逻辑和Counter一致),或者分块处理,但对于10万唯一序列的场景,上面的代码已经足够高效。
内容的提问来源于stack exchange,提问作者Silvia
相关产品推荐
相关产品推荐

