python - 在python中使用difflib比较两个文件

标签 python compare difflib

我正在尝试使用 difflib 比较两个文件。 比较后,如果未检测到差异,我想打印“No Changes”。 如果差异是他们在某些方面。我想打印那些行。

我试过这样的:

with open("compare.txt") as f, open("test.txt") as g:
            flines = f.readlines()
            glines = g.readlines()
        d = difflib.Differ()
        diff = d.compare(flines, glines)
        print("\n".join(diff))

如果检测到“没有变化”,它将打印文件的内容。但如果没有差异,我想打印“No Changes”。

最佳答案

检查每个元素中的第一个字符是否在开头有 +-(标记该行已更改):

with open("compare.txt") as f, open("test.txt") as g:
        flines = f.readlines()
        glines = g.readlines()
        d = difflib.Differ()
        diffs = [x for x in d.compare(flines, glines) if x[0] in ('+', '-')]
        if diffs:
            # all rows with changes
        else:
            print('No changes')

关于python - 在python中使用difflib比较两个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33050816/

相关文章:

python-3.x - 通过最接近的匹配合并不同长度的两列上的两个 Dataframe

python - 一维卷积的对称边界条件

python - Boost Python hello 示例给出错误。

C# 比较两个 double 与 .Equals()

C#比较2个字符串,排序,放入数组

arrays - 如何比较两个数组包含相同的项目或不包含在 groovy 中?

python - 导入错误 :No module named difflib_data

python - Python中任意大小的字节 block 的高效FIFO队列

python - Python_RAKE中的关键字提取

python - difflib 输出很奇怪,在每个字符上添加了额外的空格