在Python中比较两个文件
在 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)