比较两个文件中的列并打印同一行

时间:2014-04-09 14:12:51

标签: python python-2.7

我有两个文件:

file1:

A1
A3
A5
A7
A9

file2:

A1  B1  C1  D1
A2  B2  C2  D2
A3  B3  C3  D3
A4  B4  C4  D4
A5  B5  C5  D5

output:
A1  B1  C1  D1
A3  B3  C3  D3
A5  B5  C5  D5

我有很多行,我尝试了grep -f,它没有用。

谁可以使用python来处理这个问题?非常感谢你。

2 个答案:

答案 0 :(得分:1)

grep -f应该有用。

$ cat file1.txt
A1
A3
A5
A7
A9

$ cat file2.txt
A1  B1  C1  D1
A2  B2  C2  D2
A3  B3  C3  D3
A4  B4  C4  D4
A5  B5  C5  D5

$ grep -f file1.txt file2.txt
A1  B1  C1  D1
A3  B3  C3  D3
A5  B5  C5  D5

答案 1 :(得分:0)

这是使用python的另一种方式:

one = open('file1.csv', 'r').read().split('\n')

two  = open('file2.csv', 'r').read().split('\n')

out  = open('outfile.csv', 'w')

outputtext=  ''

for i in two:
    i = i.strip()
    for q in one:
        q = q.strip()
        if q in i and q != '' and i != '':

            outputtext += i
            outputtext += '\n'

out.write(outputtext)

out.close()