python备份文件的脚本

所属分类: 脚本专栏 / python 阅读数: 411
收藏 0 赞 0 分享

实际效果:假设给定目录"/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()

更多精彩内容其他人还在看

使用keras实现非线性回归(两种加激活函数的方式)

这篇文章主要介绍了使用keras实现非线性回归(两种加激活函数的方式),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python线性插值解析

这篇文章主要介绍了python线性插值解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python中flatten( ),matrix.A用法说明

这篇文章主要介绍了Python中flatten( ),matrix.A用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python cv2.resize函数high和width注意事项说明

这篇文章主要介绍了python cv2.resize函数high和width注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python 图像插值 最近邻、双线性、双三次实例

这篇文章主要介绍了python 图像插值 最近邻、双线性、双三次实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python-openCV开运算实例

这篇文章主要介绍了Python-openCV开运算实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python使用opencv resize图像不进行插值的操作

这篇文章主要介绍了python使用opencv resize图像不进行插值的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用Python-OpenCV消除图像中孤立的小区域操作

这篇文章主要介绍了使用Python-OpenCV消除图像中孤立的小区域操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python右对齐的实例方法

在本篇文章里小编给大家整理的是关于python右对齐的实例方法,有需要的朋友们可以学习参考下。
收藏 0 赞 0 分享

python主要用于哪些方向

在本篇文章里小编给大家整理了一篇关于python用于的方向的相关文章,有需要的阅读下吧。
收藏 0 赞 0 分享
查看更多