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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
Python的gevent框架的入门教程
Apr 29 Python
Python使用Scrapy爬取妹子图
May 28 Python
Python中random模块生成随机数详解
Mar 10 Python
python遍历 truple list dictionary的几种方法总结
Sep 11 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
对pytorch网络层结构的数组化详解
Dec 08 Python
python实现一组典型数据格式转换
Dec 15 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
python神经网络ResNet50模型
May 06 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
菜鸟修复电子管记
2021/03/02 无线电
基于php伪静态的实现详细介绍
2013/04/28 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
vue实现文件上传功能
2018/08/13 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
Python如何实现邮件功能
2020/05/27 Python
Python可以实现栈的结构吗
2020/05/27 Python
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
银行柜员应聘推荐信范文
2013/11/24 职场文书
高中英语教学反思
2014/02/04 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书