2017-10-10 58 views
0

我想查找包含HTML代码的2个txt文件之间的区别,尝试了difflib模块,但是无论我尝试什么,delta都保持为0。 我需要找到有多少行不同于总HTML代码查找2个HTML文件之间的不同线条

谢谢!

import difflib 
count = 0 
count2 = 0 
delta = 0 
f = open('C\html1.txt', 'r') 
f2 = open('C\html2.txt', 'r') 
for i in f2: 
    count2 += 1 
for i in f: 
    count += 1 
diff = difflib.udiff = difflib.unified_diff(
      f.readlines(), 
      f2.readlines(), 
      fromfile='C\html1.txt', 
      tofile='C\html2.txt', 
     ) 
for line in diff: 
    delta +=1 
print delta 

print count 
per = (delta * 100)/count 
+1

您是通过'F'迭代和DIFF之前移动文件指针到文件的开头'f2'递增'count'和'count2',使文件的位置结束。当执行readlines时,它们都是空的列表。做'f.seek(0)'和'f2.seek(0)'来重置文件的位置回到顶端 – Wondercricket

回答

0

问题是因为@ wondercricket指出文件指针已经在EOF。要解决这个

一种方法是调用

f.seek(0)f2.seek(0)计算