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

源码网商城

python备份文件的脚本

  • 时间:2020-01-06 02:56 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python备份文件的脚本
实际效果:假设给定目录"/media/data/programmer/project/python" ,备份路径"/home/diegoyun/backup/“ , 则会将python目录下的文件按照全路经备份到备份路径下,形如: /home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz.....
[u]复制代码[/u] 代码如下:
import os import shutil import datetime def mainLogic():     #add dirs you want to copy     backdir="I:\\backup"         copydirs=[]     copydirs.append("D:\\programmer")     copydirs.append("D:\\diegoyun")         print "Copying files  ==================="     start=datetime.datetime.now()     #gen a data folder for backup     backdir=os.path.join(backdir,start.strftime("%Y-%m-%d"))     #print "backdir is:"+backdir          kc=0     for d in copydirs:         kc=kc+copyFiles(d,backdir)     end=datetime.datetime.now()     print "Finished! ==================="     print "Total files : " + str(kc)      print "Elapsed time : " + str((end-start).seconds)+" seconds" def copyFiles(copydir,backdir):     prefix=getPathPrefix(copydir)     #print "prefix is:"+prefix         i=0     for dirpath,dirnames,filenames in os.walk(copydir):         for name in filenames:             oldpath=os.path.join(dirpath,name)             newpath=omitPrefix(dirpath,prefix)             print "backdir is:"+backdir                         newpath=os.path.join(backdir,newpath)             print "newpath is:"+newpath             if os.path.exists(newpath)!=True:                 os.makedirs(newpath)               newpath=os.path.join(newpath,name)             print "From:"+oldpath+" to:"+newpath             shutil.copyfile(oldpath,newpath)             i=i+1     return i     def getPathPrefix(fullpath):     #Giving /media/data/programmer/project/ , get the prefix     #/media/data/programmer/     l=fullpath.split(os.path.sep)     #print str(l[-1]=="")         if l[-1]=="":         tmp=l[-2]     else:         tmp=l[-1]     return fullpath[0:len(fullpath)-len(tmp)-1] def omitPrefix(fullpath,prefix):     #Giving /media/data/programmer/project/python/tutotial/file/test.py ,     #and prefix is Giving /media/data/programmer/project/,     #return path as python/tutotial/file/test.py     return fullpath[len(prefix)+1:] mainLogic()
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部