使用difflib在Python中比较两个文件

3
我试图使用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))

如果检测到“没有更改”,它将打印文件的内容。但是如果没有差异,我想要打印“无更改”。

你看过这个问题的答案了吗?(https://dev59.com/InNA5IYBdhLWcg3wZ8_U) - David C
1个回答

3

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

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')

谢谢您的帮助。但它没有打印任何东西。 - Krishna
谢谢David,我得到了结果。 - Krishna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接