比较两个文件,两个文件,文件比较. 写一个比较两


文件比较. 写一个比较两个文本文件的程序. 如果不同, 给出第一个不同处的行号和列号.

# 比较两个字符串,如果不同返回第一个不相同的位置# 如果相同返回0def 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 0file1 = 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 = 0col = 0#开始比较两个文件的内容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.")#该片段来自于http://byrx.net

评论关闭