• 技术文章 >后端开发 >Python教程

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

    2016-06-06 11:12:59原创636
    本文实例讲述了Python实现比较两个文件夹中代码变化的方法。分享给大家供大家参考。具体如下:

    这里将修改代码后的目录与原始目录做对比,罗列出新增的代码文件,以及修改过的代码文件

    # -*- coding: utf-8 -*-
    import os;
    folderA = "F:\\Projects\\FreeImageV3_14_1\\".lower();
    folderB = u"E:\\Software\\图像解码库\\FreeImage3141\\FreeImage\\".lower();
    filePathsA = {};
    filePathsB = {};
    for root,dirs,files in os.walk(folderA):
      for fileName in files:
        filePathsA[(root + "\\" + fileName).lower()] = 1;
    for root,dirs,files in os.walk(folderB):
      for fileName in files:
        filePathsB[(root + "\\" + fileName).lower()] = 1;
    # 在filePathsA中,找到所有和filePathsB中不一致的文件的路径    
    modifiedFilePath = [];
    addedFilePath = [];
    for filePathA in filePathsA:
      folderALen = len(folderA);
      filePathB = folderB + filePathA[folderALen:]; 
      idx = filePathA.rfind(".");
      if idx == -1:
        continue;
      ext = filePathA[idx + 1:];
      ext = ext.lower();
      if ext != "c" and ext != "h" and ext != "cpp" and ext != "cxx":
        continue;
      if filePathB not in filePathsB:
        addedFilePath.append(filePathA);
        continue;
      text_file = open(filePathA, "r");
      textA = text_file.read();
      text_file.close();
      text_file = open(filePathB, "r");
      textB = text_file.read();
      text_file.close();
      if textA != textB:   
        modifiedFilePath.append(filePathA);
    output = open('res.txt', 'w');
    output.write("added files:\n");
    for filePath in addedFilePath:
      output.write(filePath + "\n");
    output.write("modified files:\n");
    for filePath in modifiedFilePath:
      output.write(filePath + "\n");
    output.close();
    
    

    希望本文所述对大家的Python程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Python验证码识别的方法 下一篇:python数据结构之图深度优先和广度优先实例详解
    Web大前端开发直播班

    相关文章推荐

    • 一起聊聊Python的编码样式• 一起来分析Python怎么操作XML文件• 带你搞懂Python反序列化• 归纳整理!Python实用技巧总结• 归纳整理python正则表达式解析

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网