我有两个数据文件:
file1(815行):
1 2 3 a
2 3 3 b
1 2 2 b
file2(1200行):
2 5 5 a
2 1 1 b
1 2 2 c
我想要的输出如下:
1 2 2 c
这应该是file2中的行,与file1的最后一列不同(您会注意到,在前两行中,两个文件中的最后一列都是相同的);不管前三列包含什么值,如果最后一列是唯一的,则打印该行。
我很天真地尝试使用以下(python3)代码来执行此操作,但未成功,到目前为止,请指导。谢谢
with open(file1,'rU') as ij:
for i in ij:
i = i.rstrip().split('\t')
with open(file2,'rU') as ji:
for j in ji:
j = j.rstrip().split('\t')
if str(i[-1]) != str(j[-1]):
print(j)
使用这种方法,我将打印以下内容:
2 3 3 b
4 2 3 c
答案 0 :(得分:2)
您可以尝试使用以下方法:
with open(filename1) as file1, open(filename2) as file2:
for line1, line2 in zip(file1, file2):
if line1.split()[-1] != line2.split()[-1]:
print(line2)
这假设了几件事:
line.split()
查找列,因此内容用空格分隔。