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中使用enumerate函数遍历元素实例
Jun 16 Python
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
Django 批量插入数据的实现方法
Jan 12 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
Python求凸包及多边形面积教程
Apr 12 Python
python 连续不等式语法糖实例
Apr 15 Python
python能做哪方面的工作
Jun 15 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
利用python汇总统计多张Excel
Sep 22 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
php连接mysql数据库
2017/03/21 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python中按键来获取指定的值
2019/03/02 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
sklearn的predict_proba使用说明
2020/06/28 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
办公经费申请报告
2015/05/15 职场文书
班主任寄语2016
2015/12/04 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL