Python의 여러 파일에서 한 줄씩 읽기

Python의 여러 파일에서 한 줄씩 읽기

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

두 파일을 비교하는 경우 다음 방법을 사용하거나 일부 사전을 가져와 비교할 수 있습니다.

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]

관련 정보