我有一个看起来很简单的问题,但现在已经坚持太久了。我想比较两个文件(格式如下)> file1
20 246057 0.28 68363 0 A
20 246058 0.28 68396 T C
20 246059 0.28 76700 A G
20 246060 0.28 76771 T C
20 246061 0.28 76915 0 A
> file2
112879285 R 68303 20
200068921 M 68319 20
200257910 K 68336 20
200192457 W 68363 20
138777928 Y 68396 20
我想将file1列0和3与file2列2和3进行比较,如果它们匹配,我希望输出两个文件中匹配行的其余信息,如下所示:
^{pr2}$
这是我到目前为止的代码,我已经尝试了这方面的几个变体和这里的许多建议,但我仍然无法从file1中获得相应的信息。我尝试的大多数操作都会导致每次匹配都重复file1中的最后一行。在#!/usr/bin/python
import csv
data2 = []
output = open("output.txt","w")
with open("file1.txt", "rb") as in_file1, open("file2.txt","rb") as in_file2:
reader1 = csv.reader((in_file1), delimiter="\t")
for row1 in reader1:
y1 = row1[0], row1[3]
data2.append(tuple(y1))
y = row1
reader2 = csv.reader((in_file2), delimiter="\t")
for row2 in reader2:
z = row2[-1], row2[2]
if tuple(z) in data2:
out = "\t".join(row2)
output.write(out+"\n")
我正在努力的部分是在解析之后从file1获取输出。因此,我当前的结果是下面的结果,但我还需要file1中这些行的相应信息:> current output
200192457 W 68363 20
138777928 Y 68396 20
如有任何帮助或建议,我们将不胜感激!谢谢您!(我使用的是python2.7)