所以我有一個包含這個文件:循環線路上使用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