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]