在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]

相关内容