如何使用python filecmp忽略不同的换行符

时间:2017-03-23 16:21:42

标签: python python-2.7

我有一个比较文件的小脚本

import filecmp
filecmp.cmp(path1, path2)  

如果文件相似,此代码将返回True 但是如果换行符不同,它会返回Falsepath1有Linux换行符,path2有Windows换行符。 如果文件只与换行符不同,我想得到True。 是否可以不编辑文件?

2 个答案:

答案 0 :(得分:2)

这不可能与filecmp模块一起使用,因为它只能使用stat来比较文件,并且不允许您覆盖比较。

你可以用注意到的here

对itertools做点什么
from itertools import izip

def areFilesIdentical(filename1, filename2):
    with open(filename1, "rtU") as a:
        with open(filename2, "rtU") as b:
            # Note that "all" and "izip" are lazy
            # (will stop at the first line that's not identical)
            return all(myprint() and lineA == lineB
                       for lineA, lineB in izip(a, b))

答案 1 :(得分:0)

您可以删除换行符的文件并将它们分配给变量,然后比较这些变量:

a = open('a.txt', 'r').read()
b = open('b.txt', 'r').read()
print(a==b)