python对比并输出多文件夹内的不同文件,python对比,python对比并输出多
python对比并输出多文件夹内的不同文件,python对比,python对比并输出多
python对比并输出多文件夹内的不同文件。有时在做一些测试时会遇到许多很相似的文件夹,但其内部的文件却相差无几,用眼睛去看多半会出错。用一个程序能完成这项工作是最好的结果了。下面这段代码就可以解决这个问题。
对于python文件操作不太了解的朋友,可以关注:
Python遍历文件夹目录与文件操作
Python open()函数文件打开、读、写操作详解
Python 文件对象常用内建方法
# coding=gbk import os,ConfigParser'''递归列出某目录下的文件,放入List中'''def listDir (fileList,path): files=os.listdir(path) for i in files: file_path=path+"\\"+i if os.path.isfile(file_path): fileList.append(file_path) for i in files: file_path=path+"\\"+i if os.path.isdir(file_path): #fileList.append(file_path) listDir(fileList,file_path) return fileList'''将List中内容写入文件www.iplaypy.com'''def writeListToFile(list,path): strs="\n".join(list) f=open(path,'wb') f.write(strs) f.close()'''读入文件内容并放入List中'''def readFileToList(path): lists=[] f=open(path,'rb') lines=f.readlines() for line in lines: lists.append(line.strip()) f.close() return lists'''比较文件--以Set方式'''def compList(list1,list2): return list(set(list1)-set(list2))'''复制List中文件到指定位置'''def copyFiles(fileList,targetDir): for file in fileList: targetPath=os.path.join(targetDir,os.path.dirname(file)) targetFile=os.path.join(targetDir,file) if not os.path.exists(targetPath): os.makedirs(targetPath) if not os.path.exists(targetFile) or (os.path.exists(targetFile) and os.path.getsize(targetFile)!=os.path.getsize(file)): print "正在复制文件:"+file open(targetFile,'wb').write(open(file,'rb').read()) else: print "文件已存在,不复制!"if __name__ == '__main__': path=".svn" #获取源目录 txtFile="1.txt" #目录结构输出的目的文件 tdir="cpfile" #复制到的目标目录 cfFile="config.ini"; #配置文件文件名 fileList=[] #读取配置文件 if(os.path.exists(cfFile)): cf=ConfigParser.ConfigParser() cf.read(cfFile) path=cf.get("main", "sourceDir") txtFile=cf.get("main","txtFile") tdir=cf.get("main","targetDir") else: print "配置文件不存在!" raw_input("\n按 回车键 退出\n") exit() if(os.path.exists(txtFile)): #如果导出的文件存在,就读取后比较 list1=readFileToList(txtFile) print "正在读取文件列表……" fileList=listDir (fileList,path) print "正在比较文件……" list_res=compList(fileList,list1) if len(list_res)>0: print "以下是原目录中不存在的文件:\n" print "\n".join(list_res) print "\n共计文件数:"+str(len(list_res))+"\n" if raw_input("\n是否复制文件?(y/n)")!='n': copyFiles(list_res,tdir) else: print "没有不相同的文件!" else: #如果导出的文件不存在,则导出文件 print "正在读取文件列表……" fileList=listDir (fileList,path) writeListToFile(fi2000leList,txtFile) print "已保存到文件:"+txtFile raw_input("\n按 回车键 退出\n")
python对比并输出多文件夹内的不同文件
#配置文件名:config.ini[main]sourceDir=wwwroottxtFile=1.txttargetDir=cp
编橙之家文章,
相关内容
- Python批量下载人人网相册图片的实现,,Python批量下载人
- 关于webpy中form radio单选框的bug修复,webpyradio,这是我在
- Python完成抓取并写入mysql库的方法,python抓取mysql库,P
- python求公约数和公倍数的方法源码,python公约数,Pytho
- 模拟经营的python小游戏,python小游戏,用Python写的小游戏
- python单链表、二叉树的操作方法面试题,python单链,cl
- python多线程测试hosts主机操作,pythonhosts,python多线程测
- python方法实现短网址的代码,python实现代码,python方法实
- PyQt写的浏览单web页面的browser,pyqtbrowser,Python PyQt写
- python遍历数据库表及其相关表操作,python数据库,pytho
评论关闭