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

#开始比较两个文件的内容
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.")

(0)

相关推荐

  • Python模块学习 filecmp 文件比较

    filecmp定义了两个函数,用于方便地比较文件与文件夹: filecmp.cmp(f1, f2[, shallow]): 比较两个文件的内容是否匹配.参数f1, f2指定要比较的文件的路径.可选参数shallow指定比较文件时是否需要考虑文件本身的属性(通过os.stat函数可以获得文件属性).如果文件内容匹配,函数返回True,否则返回False. filecmp.cmpfiles(dir1, dir2, common[, shallow]): 比较两个文件夹内指定文件是否相等.参数dir1

  • Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法

    本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法.分享给大家供大家参考.具体如下: 这个东东本来是做来给公司数据同步用的:新服务器还没正式启用,旧的服务器还在使用,每天都有大量图片传到旧服务器上面,为了避免备份全部图片,所以写了这么个工具. 1. 运行效果如下图所示: 2. Python代码如下: 复制代码 代码如下: # coding=gbk ''' Created on 2011-1-7 @author: HH ''' import os,ConfigParse

  • python比较2个xml内容的方法

    本文实例讲述了python比较2个xml内容的方法.分享给大家供大家参考.具体分析如下: from xml.etree import ElementTree OK=True main_pid = 10000 loop_depth = 0 def compare_xml(left, right, key_info='.'): global loop_depth loop_depth += 1 if loop_depth == 1: print if left.tag != right.tag: p

  • Python3.x中自定义比较函数

    在Python3.x的世界里,cmp函数没有了.那么sorted,min,max等需要比较函数作为参数的函数该如何用呢? 以min函数的定义为例,有两种重载形式: 单参数(一个迭代器): 复制代码 代码如下: min(iterable[, key=func]) -> value 多参数(多个待比较内容): 复制代码 代码如下: min(a, b, c, ...[, key=func]) -> value 本文主要讨论key=func参数的使用 .举例说明吧: 1.自定义对象的比较 我定义了一个

  • Python合并两个字典的常用方法与效率比较

    本文实例讲述了Python合并两个字典的常用方法与效率比较.分享给大家供大家参考.具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bin/python import time def f1(d1, d2): return dict(d1, **d2) def f2(d1, d2): return dict(d1.items() + d2.items()) def f3(d1, d2): d = d1.copy() d.update(d2) retu

  • Python比较两个图片相似度的方法

    本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一些,太小的图片不好比较.附件提供完整测试代码和对比用的图片. 复制代码 代码如下: #!/usr/bin/python # Filename: histsimilar.py # -*- coding: utf-8 -*- import Image def make_regalur_image(img

  • python实现比较两段文本不同之处的方法

    本文实例讲述了python实现比较两段文本不同之处的方法.分享给大家供大家参考.具体实现方法如下: # find the difference between two texts # tested with Python24 vegaseat 6/2/2005 import difflib text1 = """The World's Shortest Books: Human Rights Advances in China "My Plan to Find th

  • Python实现比较两个文件夹中代码变化的方法

    本文实例讲述了Python实现比较两个文件夹中代码变化的方法.分享给大家供大家参考.具体如下: 这里将修改代码后的目录与原始目录做对比,罗列出新增的代码文件,以及修改过的代码文件 # -*- coding: utf-8 -*- import os; folderA = "F:\\Projects\\FreeImageV3_14_1\\".lower(); folderB = u"E:\\Software\\图像解码库\\FreeImage3141\\FreeImage\\&q

  • 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 le

  • java实现倒序读取文件功能示例分享

    Long end,long num,File file,String charset4个参数说明end 相当于坐标 ,tail 向上的起点,num是读取的行数,file 目标文件 charset字符集 默认UTF8end 为 null 代表从 文件 最末端 向上 获取. Map m=FileUtil.tail(null,10,file,null)//读取文件最后10行,结果在 m.get(FileUtil.ARR) 里FileUtil.tail(m.get(FileUtil.POINT),3,f

  • commons io文件操作示例分享

    复制代码 代码如下: package com.pzq.io;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.StringReader;import java.nio.charset.Charset;import java.util.ArrayList;

  • php无限遍历文件夹示例分享

    最近在能php目录操作,搞了一个目录无限遍历: 使用的函数有: isset()判断某个变量是否定义 chdir() 将当前目录改变为指定的目录. opendi()打开目录. readdir()读取目录. getcwd()获取当前目录. 还用到了for  if  GET传值 大概就这些东东: 下面是代码: 复制代码 代码如下: <?phpif(isset($_GET['id']))//判断是否传值{    $s=str_replace(' ','+',$_GET['id']);    $s=bas

  • Python urlopen()函数 示例分享

    好了,废话少说,我们先看看几个示例吧 一.打开一个网页获取所有的内容 复制代码 代码如下: from urllib import urlopendoc = urlopen("http://www.baidu.com").read()print doc 二.获取Http头 复制代码 代码如下: from urllib import urlopendoc = urlopen("http://www.baidu.com")print doc.info()print doc

  • php遍历文件夹和文件列表示例分享

    为PHP遍历目录和文件列表写了一个简单的类,并附上使用实例,大家参考使用吧 复制代码 代码如下: <?phpdefine('DS', DIRECTORY_SEPARATOR); class getDirFile{ //返回数组    private $DirArray  = array();    private $FileArray = array();    private $DirFileArray = array(); private $Handle,$Dir,$File; //获取目录

  • java复制文件和java移动文件的示例分享

    复制代码 代码如下: package com.famous.dark.util; import java.io.File;import java.io.FileFilter; public class MyFileFilter implements FileFilter { public boolean accept(File file) {  String fileName = file.getName().toLowerCase();  if (fileName.endsWith(".jar

  • python定时器使用示例分享

    复制代码 代码如下: class SLTimer(multiprocessing.Process):    #from datetime import datetime    #import time def __init__(self, target=None, args=(), kwargs={},date=None,time=None):        '''\        @param date 1900-01-01        @param time 00:00:00       

  • python求素数示例分享

    复制代码 代码如下: # 判断是否是素数def is_sushu(num): res=True for x in range(2,num-1):  if num%x==0:   res=False   return res return res # 打印出素数列表print ([x for x in range(1000) if is_sushu(x)])

  • Python实现删除时保留特定文件夹和文件的示例

    实现功能:删除当前目录下,除保留目录和文件外的所有文件和目录 #!bin/env python import os import os.path import shutil def DeleteFiles(path, remainDirsList, filesList): dirsList = [] dirsList = os.listdir(path) for f in dirsList: if f not in remainDirsList: filePath = os.path.join(

随机推荐