擅长:python、mysql、java
<p>在这里使用发电机可能很方便。你知道吗</p>
<pre><code>def find_motif(f, motif):
while True:
try:
id_line = next(f)
text_line = next(f)
except StopIteration:
break
if motif in text_line:
yield id_line
with open("my file") as f:
with_motif = find_motif(f, "ABCD")
for id_line in with_motif:
print(id_line)
</code></pre>
<p>所以:</p>
<pre><code>text = """>chr9:128683-128744
GGATTTCTTCTTAGTTTGGATCCATTGCTGGTGAGCTAGTGGGATTTTTTGGGGGGTGTTA
>chr16:134222-134283
AGCTGGAAGCAGCGTGGGAATCACAGAATGGCCGGGACCTTAAAGGCTTTGCTTGGCCTGG
>chr16:134226-134287
GGAAGCAGCGTGGGAATCACAGAATGGACGGCCGATTAAAGGCTTTGCTTGGCCTGGATTT
>chr1:134723-134784
AAGTGATTCACCCTGCCTTTCCGACCTTCCCCAGAACAGAACACGTTGATCGTGGGCGATA
>chr16:135770-135831
GCCTGAGCAAAGGGCCTGCCCAGACAAGATTTTTTAATTGTTTAAAAACCGAATAAATGTT"""
f = iter(text.splitlines())
with_motif = find_motif(f, "GGAC")
for id_line in with_motif:
print(id_line)
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>>chr16:134222-134283
>chr16:134226-134287
</code></pre>