python文件内容比对输出新文件_Python比较两个文件中的列并返回合并输出

我有一个看起来很简单的问题,但现在已经坚持太久了。我想比较两个文件(格式如下)> 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值