<p>要获得所需的结果,请使用<code>re.split()</code>对以下内容调用<code>re.findall()</code>编辑该行:</p>
<pre><code>lst=re.split(r'(>Query\=.*)?',inter,re.DOTALL)
</code></pre>
<p>有关<code>re.split()</code>的详细信息,请参阅此部分:</p>
<p><a href="https://docs.python.org/2/library/re.html" rel="nofollow noreferrer">https://docs.python.org/2/library/re.html</a></p>
<p>另外,您可能需要考虑在<code>biopython</code>中使用现已弃用的BLAST解析器:</p>
<p><a href="http://biopython.org/DIST/docs/tutorial/Tutorial.html#htoc96" rel="nofollow noreferrer">http://biopython.org/DIST/docs/tutorial/Tutorial.html#htoc96</a></p>
<blockquote>
<p>The plain text BLAST parser is located in Bio.Blast.NCBIStandalone.</p>
<p>As with the XML parser, we need to have a handle object that we can
pass to the parser. The handle must implement the readline() method
and do this properly. The common ways to get such a handle are to
either use the provided blastall or blastpgp functions to run the
local blast, or to run a local blast via the command line, and then do
something like the following:</p>
<blockquote>
<blockquote>
<p>result_handle = open("my_file_of_blast_output.txt")</p>
</blockquote>
</blockquote>
<p>现在我们有了一个句柄(我们称之为result\u handle),我们
准备好解析它了。这可以通过以下代码完成:</p>
</blockquote>
^{pr2}$
<blockquote>
<p>This will parse the BLAST report into a Blast Record class (either a
Blast or a PSIBlast record, depending on what you are parsing) so that
you can extract the information from it. In our case, let’s just print
out a quick summary of all of the alignments greater than some
threshold value.</p>
</blockquote>
<pre><code>>>> E_VALUE_THRESH = 0.04
>>> for alignment in blast_record.alignments:
... for hsp in alignment.hsps:
... if hsp.expect < E_VALUE_THRESH:
... print('****Alignment****')
... print('sequence:', alignment.title)
... print('length:', alignment.length)
... print('e value:', hsp.expect)
... print(hsp.query[0:75] + '...')
... print(hsp.match[0:75] + '...')
... print(hsp.sbjct[0:75] + '...')
</code></pre>
<blockquote>
<p>If you also read the section 7.3 on parsing BLAST XML output, you’ll
notice that the above code is identical to what is found in that
section. Once you parse something into a record class you can deal
with it independent of the format of the original BLAST info you were
parsing. Pretty snazzy!</p>
</blockquote>