如何在Python中逐行比较两个不同的文件?
本教程介绍了使用Python可用模块、读取两个文件并逐行比较它们来执行这种典型工作的各种Python比较技术。
在Python中,可以通过多种方式比较两个文件。
逐行比较两个文本文件
通过使用open()函数从两个文本文件读取数据,我们可以比较它们包含的信息。open()函数将搜索本地目录并可能读取它。
示例
在此示例中,我们对比两个包含Python数据的文件。我们被告知这两个Python文件可能不相同,Python将为我们检查文件。可以使用readlines()方法从Python文件中提取行。
在从文件中提取数据后,使用for循环逐行比较文件。如果行不匹配,用户将收到一条消息,告诉他们发生了不匹配的位置。为了让用户能够简单地找到不同的行,我们将包含数据本身。
输出
以下是上述代码的输出-
使用filecmp模块
通过filecmp模块可以在Python中处理文件。该模块专门设计用于比较两个或多个文件之间的数据。使用filecmp.cmp()方法,我们可以完成此操作。如果文件匹配,则该函数将返回True;否则,返回False。
示例
以下是使用filecmpule的示例−
输出
使用difflib模块
为了比较文本并识别它们之间的变化,请使用difflib包。Python 3模块已经预装了此语言。它具有许多有用的比较文本样本的功能。
首先,我们将使用unified diff()函数识别两个数据文件之间的差异。然后,我们将比较这些文件。
示例1-使用unified-diff()
在下面的例子中,使用with语句读取文件数据。Python with语句允许我们安全地打开和读取文件。
输出
下面是上述代码的输出 –
示例2-使用differ()
在difflib库中,有一个名为Differ的类可用于比较文件差异。该类用于比较文本行组并生成增量或差异。
以下是使用differ()方法逐行比较两个不同文件的示例 –
输出
以下是上述代码的输出 –