Pythonの複数のファイルから1行ずつ読み込む

Pythonの複数のファイルから1行ずつ読み込む

Pythonでは、n個の.txtファイル行をどのように読み取ることができますか?ファイルが3〜4個ある場合は、次のコマンドを3〜4回使用してファイルを開き、行を読み取ることができますが、..

with open(filename, "r") as file:

ファイルが100個以上の場合(フォルダに別の拡張ファイルがある場合)、.txtファイルのみを読み取ることができる方法は何ですか?

100個のファイルがある場合は、ファイルの各行を他のファイルと比較したいと思います。

ファイル1-2、1-3、1-4、....1-99、1-100、2-3、2-4、2-100、.....99-1、99-2、 ..99-100

2つのファイルを比較する場合は、次の方法を使用するか、いくつかの辞書をインポートして比較できます。

file1 = open('some_file_1.txt', 'r')
file2 = open('some_file_2.txt', 'r')

for line1 in file1:
    for line2 in file2:
        if line1 == line2:
            print(file1)
            print(file2)

file1.close()
file2.close()

ファイルの各行を他の行と比較し、ファイル内の同じ行を印刷する方法がわかりません。 ps: I want to print the result in the command prompt

期待される出力

filenames   line

出力例(ファイル名は一意でフォーマットが同じです) ファイル名は異なり、拡張子のみが同じです(例:
.txt)。

filename1 and filename2 <tab>    same_statement_1
filename5 and filename12 and filename75 and filename81 <tab>  same_statement_29
filename8 and filename20  and filename78  <tab>  same_statement_17
filename56 and filename59  <tab>  same_statement_85
filename59 and filename97  <tab>  same_statement_101

答え1

ファイルが特に大きくないと仮定すると、事前に理解することができます。

import os
filedata = { f: open(f, 'r').readlines() for f in os.listdir() if '.txt' == f[-4:] }

次に、ファイルの行を比較します。Nそれ以外の場合は、以下を確認できます。

filedata['filename1.txt'][n] == filedata['filename2.txt'][n]

関連情報