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


Posted in Python onJuly 10, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
python3.4实现邮件发送功能
May 28 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
详解python之heapq模块及排序操作
Apr 04 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
Pandas中resample方法详解
Jul 02 Python
Flask框架模板继承实现方法分析
Jul 31 Python
在python中做正态性检验示例
Dec 09 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
详解OpenCV曝光融合
Apr 29 Python
python双向链表实例详解
May 25 Python
python简单文本处理的方法
Jul 10 #Python
Python实现把json格式转换成文本或sql文件
Jul 10 #Python
Python中的一些陷阱与技巧小结
Jul 10 #Python
Python中的fileinput模块的简单实用示例
Jul 09 #Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 #Python
python冒泡排序简单实现方法
Jul 09 #Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 #Python
You might like
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
json简单介绍
2008/06/10 Javascript
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python中的闭包用法实例详解
2015/05/05 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
jupyter 导入csv文件方式
2020/04/21 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
中学教师岗位职责
2013/11/26 职场文书
便利店投资创业计划书
2014/02/08 职场文书
小学新课改心得体会
2016/01/22 职场文书