比较两个文本文件,删除重复行

2024-09-27 00:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文本文件,file1.txt和file2.txt,我需要比较和删除重复行。这两个文件大小不相等。在

我试过使用filecmpopenfiles,但它们不起作用。在

with open('crones.txt', 'r') as file1:
    with open('destino.txt', 'r+') as file2:
        lineas = file1.readlines()
        same = set(file1).intersection(file2)

        file2.close()
        file1.close()
        #file1 = open("crones.txt","w")
        #for linea in lineas:
        #    if linea!=same+"\n":
        #        f.write(linea)


        print same
        print lineas


#same.discard('\n')

#with open('some_output_file.txt', 'w') as FO:
 #   for line in same:
 #       FO.write(line)

Tags: intxtforcloseaswithopenfile1
1条回答
网友
1楼 · 发布于 2024-09-27 00:19:50

这可能是你想要的:

with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2:
    a = f1.readlines()
    b = f2.readlines()

non_duplicates = [line for line in a if line not in b]
non_duplicates += [line for line in b if line not in a]

非重复项现在是一个列表,其中包含每个文件中不同时出现在两个文件中的所有行。如果您还担心每个文件中存在重复项,可以添加以下内容:

^{pr2}$

其他注意事项:

  1. 听这里的评论。如果您遵循asking good questions上stackoverflow帮助部分中的指导原则,您将得到更多的答案。具体来说,请确保先尝试编写代码。如果它不起作用,发布明确的错误消息并描述导致错误的输入。在
  2. 你应该在with statement上做some reading,并特别强调opening files。在
  3. 你发布了一些代码是很好的,但是要去掉注释掉的混乱。我们不想看到你乱七八糟的,被黑了的,正在进行的代码。您发布的代码应该是一个minimal, complete, and verifiable示例,用于演示您遇到的问题。在

相关问题 更多 >

    热门问题