繁体   English   中英

比较两个文本文件并将匹配项转到一个新文件

[英]Comparing two text files and the matches go to a new file

在 python 中,我想找到一种方法来比较两个文本文件并逐行读取并找到它在另一个文件中是否匹配。 如果它们匹配,我想将该字符串写入一个新文件。

我什至不知道如何开始这个,我唯一知道的就是如何读取文本文件,但不将其与另一个文件进行比较。

任何开始的提示、链接或想法都会很棒。

谢谢

我会这样做>>

list_of_str_in_file1 = []  # list of strings in file 1
with open('file1.txt', 'r') as f:
    data = f.readlines()
    for line in data:
        list_of_str_in_file1.append(line)

result = []  # list of common strings.
with open('file2.txt', 'r') as f:
    data = f.readlines()
    for line in data:
        if line in list_of_str_in_file1:
            result.append(line)

现在您可以对结果列表做任何您需要的事情。

(专家提示:我是菜鸟,如果这不是一个好方法,请发表评论,以便我学习。)

尝试这样的事情。

with open('file1.txt') as file1:
     with open('file2.txt') as file2:
           newfile = open('newfile.txt','w')
           for range(len(file1.readlines())):
                s1 = file1.readline()
                s2 = file2.readline()
                if s1 == s2:
                       newfile.write(s1)
           newfile.close()     
   

或者像@SUTerliakov 这样更简单的东西指出common_lines = set(file1.readlines()) & set(file2.readlines())而不是检查块,例如:

with open('file1.txt') as file1:
     with open('file2.txt') as file2:
           newfile = open('newfile.txt','w')
           common_lines = set(file1.readlines()) & set(file2.readlines())
           for line in common_lines:
                 newfile.write(line)

            newfile.close() 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM