- A+
所属分类:Python
Python写的比较2个文件不同的程序,如果其中有1个文件不同,就会返回第一个不同的地方的行号和列号。
下面给出比较文件的Python源代码:
# 用Python比较两个文件 # 如果相同返回0 def cmpstr(str1, str2): col = 0 for c1, c2 in zip(str1, str2): if c1 == c2: col += 1 continue else : break #判断是怎样退出循环的,还有一种情况是串长度不同 if c1 != c2 or len(str1) != len(str2): return col+1 else : return 0 file1 = open("a.txt",'r') file2 = open("b.txt",'r') fa = file1.readlines() fb = file2.readlines() file1.close() file2.close() #用GBK解码,这样可以处理中文字符 fa = [ str.decode("gbk") for str in fa] fb = [ str.decode("gbk") for str in fb] row = 0 col = 0 #学习Python上安云网 www.AnYun.ORG! #开始比较内容 for str1, str2 in zip(fa, fb): col = cmpstr(str1,str2) # col=0则说明两行相等 if col == 0 : row += 1 continue else: break #如果有一行不同,或者文件长度不一样 if str1 != str2 or len(fa) != len(fb): #打印出不同的行序和列序,并把不同的前一句后本句打印出来 #最后两个字符是不同的地方 print "row:", row+1, "col:", col print "file a is:\n", fa[row-1],fa[row][:col+1], "\n" print "file b is:\n", fb[row-1],fb[row][:col+1], "\n" else : print "All are same!" #获取用户输入。 raw_input("Press Enter to exit.")
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫