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多进程multiprocessing用法实例分析
Aug 18 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
详解python单元测试框架unittest
Jul 02 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
python3下载抖音视频的完整代码
Jun 05 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
python库matplotlib绘制坐标图
Oct 18 Python
python操作gitlab API过程解析
Dec 27 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python入门学习之类的相关知识总结
May 25 Python
Python与C++中梯度方向直方图的实现
Mar 17 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
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
Jquery cookie操作代码
2010/03/14 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
你必须知道的Javascript知识点之"this指针"的应用
2013/04/23 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
分享javascript计算时间差的示例代码
2020/03/19 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
Python实现端口复用实例代码
2014/07/03 Python
Python正则表达式使用范例分享
2016/12/04 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Python面向对象编程基础实例分析
2020/01/17 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
生日宴会答谢词
2014/01/09 职场文书
学生生病请假条范文
2014/02/16 职场文书
推广普通话标语
2014/06/27 职场文书
九九重阳节致辞
2015/07/31 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python