" />
                  
Android webstorm汉化包 另类堆栈 eloquent matlab向上取整 pagination grid chartjs vuejs视频教程 河南普通话 less用法 docker的安全特性有哪些 kubernetes架构 mysql 选择数据库 python获取输入 java教学 java包 java类型 java环境变量配置 java数组追加 java系统时间 java方法调用 linux入门基础 shell脚本参数 ip隐藏 xp画图工具 jb51 js判断字符串相等 dg分区 pr缩放 小工具 dnf传说装备 惠普战99 pr放大画面 图片转pdf免费软件 unity3d中文版 抠图软件免费版 上单塞拉斯 视频添加水印 ppt虚线怎么画
当前位置: 首页 > 学习教程  > python

python备份文件的脚本

2021/2/8 19:58:42 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

实际效果:假设给定目录"/media/data/programmer/project/python" ,备份路径"/home/diegoyun/backup/“ , 则会将python目录下的文件按照全路经备份到备份路径下,形如:

/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz.....

复制代码 代码如下:

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()


本文链接: http://www.dtmao.cc/news_show_2000398.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?