我正在尝试在两个文件之间进行链式比较,如果它在指定的时间间隔内打印/写出结果 .
这就是我到目前为止所拥有的 .
test1文件:
A0AUZ9,7,17 #just this one line
测试2文件:
A0AUZ8, DOC_PP1_RVXF_1, 8, 16, PF00149, O24930
A0AUZ9, LIG_BRCT_BRCA1_2, 127, 134, PF00533, O25336
A0AUZ9, LIG_BRCT_BRCA1_1, 127, 132, PF00533, O25336
A0AUZ9, DOC_PP1_RVXF_1, 8, 16, PF00149, O25685
A0AUZ9, DOC_PP1_RVXF_1, 8, 16, PF00149, O25155
脚本本身:
results = []
with open('test1', 'r') as disorder:
for lines in disorder:
cells = lines.strip().split(',')
with open('test2', 'r') as helpy:
for lines in helpy:
blocks = lines.strip().split(',')
if blocks[0] != cells[0]:
continue
elif cells[1] <= blocks[2] and blocks[3] <= cells[2]:
results.append(blocks)
with open('test3','wt') as outfile:
for i in results:
outfile.write("%s\n" % i)
我首选的输出是只有test3中的行,即:
在第一列中有匹配的ID
第3列和第4列中的两个数值介于test1文件中给出的值之间
我没有输出,我不确定它出了什么问题 .
1 回答
它没有按预期工作的原因之一是你在比较字符串而不是数字 .
但是,可能有更好的方法来做你想做的事情 . 假设第一个文件小到足以适合内存: