Python写的比较2个文件不同的程序,python写程序,Python写的比较2个


Python写的比较2个文件不同的程序,如果其中有1个文件不同,就会返回第一个不同的地方的行号和列号。

下面给出比较文件的Python源代码:

# 用Python比较两个文件,这次比较.txt文件不比较python文件# 如果相同返回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 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 = 0col = 0#学习Python上编橙之家 www.iplaypy.com!#开始比较内容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.")   

编橙之家文章,

评论关闭