擅长:python、mysql、java
<p>好吧,如果是我,我会试试这样的方法:</p>
<pre><code>def collector(fileIn):
d = {}
with open(fileIn, "r") as f:
for line in f:
clu, gen, spec, fam = line.split()
d.setdefault(gen, []).append((spec, fam))
return d
def compare_files(f1, f2):
d1 = collector(f1)
d2 = collector(f2)
for genus in d1:
try:
if len(d1[genus]) != len(d2[genus]):
print genus, "is different"
except:
print genus, "not found in file 2"
</code></pre>
<p>你可以打印出d1或d2中每个不匹配的属的元组,看看哪个缺失了。比较两个键,看看是否有两个文件缺少一个属(我只是假设它们没有)。在</p>
<p>如果文件很大,可以删除try/except以减少开销</p>
<p>希望有帮助。还请注意,我没有将集群号保存在任何地方。如果这很重要,那么也许你可以在字典中添加(spec,fam,clu)。在</p>
<p><b>编辑</b>键入代码</p>