最初の列が他のファイルと一致する場合は、ファイルの行を取得しますか?

最初の列が他のファイルと一致する場合は、ファイルの行を取得しますか?

2つのテキストファイル(タブ区切り)があります。ファイル2の最初の列またはIDが一致した場合は、ファイル2から行を取得したいと思います。例は次のとおりです。

ファイル1:

115
147
222
322

ファイル2:

0   AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1   AAAAAAAAAAAAAAAAAAA
22  GACGGCA 
34  AAAAAATTTTTTTTAAAAAAAAAAAAA
25  GACGGCAAAAAAAAAAAAAAAAA 
115 AAAAAAAAAAAAAAAAGGGGGGGGGGAAAAAAA
147 GGGGGGGGTTTTTTTTTAAAAAAAA
222 GACGGGAA
322 AAAAAATTTTTTTTAAAAAAAAAAAAA

希望の出力:

115 AAAAAAAAAAAAAAAAGGGGGGGGGGAAAAAAA
147 GGGGGGGGTTTTTTTTTAAAAAAAA
222 GACGGGAA
322 AAAAAATTTTTTTTAAAAAAAAAAAAA

ベストアンサー1

Pythonソリューション:

with open('file1.txt') as f1:
    ids = set(f1.read().splitlines())

with open('file2.txt') as f2, open('file3.txt', 'w') as f3:
    lines = f2.read().splitlines()
    for line in lines:
        id = line.split()[0]
        if id in ids:
            f3.write(line + '\n')

おすすめ記事