所以我有一个包含这个文件:循环线路上使用Python
SequenceName 4.6e-38 810..924
SequenceName_FGS_810..924 VAWNCRQNVFWAPLFQGPYTPARYYYAPEEPKHYQEMKQCFSQTYHGMSFCDGCQIGMCH
SequenceName 1.6e-38 887..992
SequenceName_GYQ_887..992 PLFQGPYTPARYYYAPEEPKHYQEMKQCFSQTYHGMSFCDGCQIGMCH
我想我的程序读取只包含这些蛋白质序列的线条。到现在为止,我得到了这一点,这将跳过第一行并读取第二个:
handle = open(filename, "r")
handle.readline()
linearr = handle.readline().split()
handle.close()
fnamealpha = fname + ".txt"
handle = open(fnamealpha, "w")
handle.write(">%s\n%s\n" % (linearr[0], linearr[1]))
handle.close()
但它仅处理第一序列,我需要它来处理一个包含序列的每一行,所以我需要一个循环, 我该怎么做? 保存到txt文件的部分也非常重要,所以我需要找到一种方法来将这两个目标结合起来。 我与上面的代码输出为:
>SequenceName_810..924
VAWNCRQNVFWAPLFQGPYTPARYYYAPEEPKHYQEMKQCFSQTYHGMSFCDGCQIGMCH
“readlines”是邪恶的!它将在内存中分配一个行数组。使用生成像readline代替。在这种情况下计算生物学似乎是这样很重要 – 2012-04-15 04:46:06
是的,我看到了你对其他答案的评论,并且看到了这个问题,看起来好像readlines是邪恶的,或者至少是多余的,我会编辑我的答案,谢谢你的提示! – modocache 2012-04-15 04:47:25
没问题,在同一张纸上使用“xrange”而不是“range”,因为“range”确实在内存中分配了一个完整的数组,而“xrange”只是生成器的版本 – 2012-04-15 04:49:30