源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法

  • 时间:2020-07-30 18:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法。分享给大家供大家参考。具体如下: 这个东东本来是做来给公司数据同步用的:新服务器还没正式启用,旧的服务器还在使用,每天都有大量图片传到旧服务器上面,为了避免备份全部图片,所以写了这么个工具。 1. 运行效果如下图所示: [img]http://files.jb51.net/file_images/article/201503/201535153331512.jpg?201525153344[/img] 2. Python代码如下:    
[u]复制代码[/u] 代码如下:
# coding=gbk ''' Created on 2011-1-7 @author: HH ''' 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中内容写入文件 ''' 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(fileList,txtFile)         print "已保存到文件:"+txtFile     raw_input("\n按 回车键 退出\n")
3. 配置文件名:config.ini如下:
[u]复制代码[/u] 代码如下:
#配置文件名:config.ini [main] sourceDir=wwwroot txtFile=1.txt targetDir=cp
希望本文所述对大家的Python程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部