python处理txt文件内容

本文介绍了如何使用Python实现生物信息学数据文件的去重和排序,保留唯一序列,并分别记录原始标识符。首先,通过读取文件并利用set数据结构去重,其次,将不同副本与原始标识符对应写入新文件。接着,通过对比和排除重复序列创建唯一序列文件,确保每个序列的独特性。
摘要由CSDN通过智能技术生成

python实现txt文件内容处理(去重序列及排序,求唯一序列)

有如下生物信息学数据,存在内容完全相同的序列。

在这里插入图片描述

  • 需求1:找出相同序列,然后在文件中只保留他们的一个副本,并在文件中分别保留对应的原始标识符列表
  • 需求2:在另外一个文件保存唯一序列

需求1

#去重序列及排序
lines_seen = set()
readDir = "123.txt"
f = open(readDir,"r")
writeDir = "456.txt"
outfile=open(writeDir,"w")

while True:
    line1 = f.readline()
    line2 = f.readline()
    if not line2: break  # EOF
    if line2 not in lines_seen:
        outfile.write(line1)
        lines_seen.add(line2)
        e = open(readDir, "r")
        while True:
            line3 = e.readline()
            line4 = e.readline()
            if not line4: break  # EOF
            if (line4 == line2) and (line3 != line1):
                outfile.write(line3)
        outfile.write(line2)

outfile.close()
print ("success")

result:
在这里插入图片描述

需求2

#求唯一序列
readDir = "123.txt"
writeDir = "789.txt"
lines_seen = set()
lines_remove = set()
seen = set()
outfile=open(writeDir,"w")
f = open(readDir,"r")

while True:
    line1 = f.readline()
    line2 = f.readline()
    if not line2: break  # EOF
    if line2 in seen:
        lines_remove.add(line2)
    else:
        seen.add(line2)

e = open(readDir,"r")
while True:
    line1 = e.readline()
    line2 = e.readline()
    if not line2: break  # EOF
    if line2 not in lines_remove:
        outfile.write(line1)
        outfile.write(line2)

outfile.close()
print ("success")

result:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值