Python使用difflib对比两个文件操作实例
来源:互联网 发布:兼职淘宝客服好不好做 编辑:程序博客网 时间:2024/05/16 17:08
#coding=utf8'''该库用来管理文件。初始化函数调用读取配置文件模块中的Config类用来获取下载路径、保存路径。模块包含四个方法:clearResultCSV(): 用来删除下载路径下所有的result开头的csv文件moveCSVToSave():把下载路径下的result.csv文件重命名,并把重命名后的文件移动到保存路径下getLastFileWithPath():获取保存路径下最新的文件,并带路径返回该文件getLastFile():获得最新文件的命令并返回'''import os#操作文件的包import shutilimport reimport timeimport difflib#导入读取配置文件库的Configfrom readConfig import Configclass FileManger(object): def __init__(self,configObj=Config()): try: #创建一个Config对象实例 self.config=configObj #通过对象实例调用方法getDownPath() #获取下载路径 self.down=self.config.getDownPath() #通过对象实例调用方法getSavePath() #获取保存路径 try: self.save=self.config.getSavePath() if os.path.exists(self.save): pass else: os.mkdir(self.save) self.save=self.save except Exception,e: print "Save Report Error:",e except Exception,e: print e def clearResultCSV(self): try: #获取下载路径下的所有文件 #并把文件保存在list变量fileList中 fileList=os.listdir(self.down) #判断fileList是否为空,不为空执行if模块 if fileList: #对fileList中的元素进行循环 for item in fileList: #查找下载路径下是否存在result开头的csv文件 #如果存在,则删除 if re.match("result(.*).csv",item): #删除result开头的csv文件 os.remove(self.down+"\\"+item) except Exception,e: print e def moveCSVToSave(self): try: #获取下载路径下的所有文件 #并把文件保存在list变量fileList中 fileList=os.listdir(self.down) #获取当前时间并转换为字符串格式 now=time.strftime("%Y%m%d%H%M%S") #判断fileList是否为空,不为空执行if模块 if fileList: #对fileList中的元素进行循环 for item in fileList: try: #查找下载路径下是否存在result.csv文件 #如果存在,对文件进行重命名 if re.match("result\.csv",item): #获取带有路径的result.csv文件 oldfilename=self.down+"\\"+item #重命名的命令格式是符:20170306143330.csv newfileName=self.down+"\\"+now+".csv" #对文件result.csv进行重命名为格式如:20170306143330.csv os.rename(oldfilename,newfileName) #把重命名的文件移动到保存路径下 shutil.move(newfileName, self.save) except Exception,e: print e except Exception,e: print e def getLastReqement(self): try: #获取下载路径下的所有文件 #并把文件保存在list变量listfile中 listfile=os.listdir(self.save) #判断listfile是否为空,不为空执行if模块 if len(listfile)>1: #保存带有路径的最新文件 try: self.diffPath=self.config.getDiffPath() if os.path.exists(self.diffPath): pass else: os.mkdir(self.diffPath) self.diffPath=self.diffPath lastfile=self.save+"\\"+listfile[-1] #获取第二个比较新的文档 twofile=self.save+"\\"+listfile[-2] lastestFile=open(lastfile,"r").readlines() secondLastestFile=open(twofile,"r").readlines() diffInf=difflib.ndiff(lastestFile,secondLastestFile) diffHtml=open(self.diffPath+"\\"+"diff.log","w") diffHtml.writelines(diffInf) except Exception,e: print "Save Diff Error:",e except Exception,e: print e def test(): ''' 创建一个测试脚本,执行冒烟测试。 用来验证程序功能能正常运行。 ''' #创建一个Config对象实例 fm=FileManger() #fm.clearResultCSV() fm.moveCSVToSave() print fm.getLastFileWithPath(),os.listdir(fm.save) if __name__=="__main__": test()
0 0
- Python使用difflib对比两个文件操作实例
- Python自动化运维笔记(四):使用difflib模块实现文件内容差异对比
- Python 通过difflib模块实现文件内容差异对比
- python对比两个文件的方法
- python文件操作实例
- python里使用difflib库的Differ来比较文本
- python里使用difflib库的unified_diff来比较文本
- python difflib模块
- Python difflib模块
- python difflib 模块
- Python 读写文件的两个简单实例
- python difflib模块讲解示例
- 用Python xlrd对比两个Excel文件的差异diff
- 用python实现两个文件中的数据对比
- 两个文件对比 C#
- vi对比两个文件
- 两个数据库文件对比
- python里使用difflib库的比较文本时丢弃不要的字符
- spring 定时任务cron在线表达式生成
- 小球在矩形框内45°碰撞问题
- Web窗体中的@page指令中各个字段的意思
- python3.6 sqlalchemy安装与使用
- 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 转自:http://cooler1217.iteye.c
- Python使用difflib对比两个文件操作实例
- 一个简单的登录,POST表单提交时报错,403 bad or missing token!
- Ubuntu中Vmware Tools的安装与卸载 <一>
- JavaScript写出,用户输入一个三位数,求出各个数位的和。
- hibernate知识点回顾
- PHP 获取当前时间以及解决PHP通过date()函数取得时间错误问题
- ios中反向传值得几种方法
- java xsd 校验工具类
- Effective Java读书笔记——第六章 枚举和注解