在Python中比较两个文件

0 投票
3 回答
969 浏览
提问于 2025-04-15 20:53

在 a.txt 文件里,我有一些文本(每行一个接一个)。

login;user;name
login;user;name1
login;user

在 b.txt 文件里,我也有一些文本。

login;user
login;user
login;user;name2

比较之后,应该把结果显示在一个文本文件里,内容是:

login;user;name
login;user;name1
login;user;name2.... 

我该如何用 Python 来实现这个呢?

3 个回答

0

根据提供的信息,我会尝试以下方法:

import itertools

def merger(fni1, fni2):
    "merge two files ignoring 'login;user\n' lines"
    fp1= open(fni1, "r")
    fp2= open(fni2, "r")
    try:
        for line in itertools.chain(fp1, fp2):
            if line != "login;user\n":
                yield line
    finally:
        fp1.close()
        fp2.close()

def merge_to_file(fni1, fni2, fno):
    with open(fno, "w") as fp:
        fp.writelines(merger(fni1, fni2))

merge_to_file 是你应该使用的函数。

1

也许标准库里的 difflib 模块可以帮到你——你可以看看它的说明文档。你的问题不够清楚,所以我没法给出更详细的回答。

4

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,如果你想让程序在某个变量的值达到特定数字时,才执行某个功能,这就是条件判断的用处。

条件判断就像是一个开关,只有在满足某个条件时,开关才会打开,程序才会继续执行后面的代码。这样可以帮助我们控制程序的运行流程,避免不必要的错误。

在代码中,通常会使用一些关键字,比如“if”(如果)来进行条件判断。你可以想象成是在问:“如果这个条件成立,我就做这件事。”

总之,条件判断是编程中非常重要的一部分,它让程序变得更加灵活和智能。

for a, b in zip(open('a'), open('b')):
    print(a if len(a.split(';')) == 3 else b)

撰写回答