擅长:python、mysql、java
<p>您需要读取文件两次;第一次,跟踪每个条目的最大大小:</p>
<pre><code>largest = {}
with open(inputfile) as f:
for line in f:
if line.startswith('>'):
parts = line.split('|')
name, length = parts[0][1:], int(parts[-1])
largest[name] = max(length, largest.get(name, -1))
</code></pre>
<p>然后在第二遍中写出副本,但只有那些名称和长度与从第一遍中提取的最大长度相匹配的部分:</p>
<pre><code>with open(inputfile) as f, open(outpufile, 'w') as out:
copying = False
for line in f:
if line.startswith('>'):
parts = line.split('|')
name, length = parts[0][1:], int(parts[-1])
copying = largest[name] == length
if copying:
out.write(line)
</code></pre>