国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python備份文件的腳本

2020-01-04 18:06:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
作用:將目錄備份到其他路徑。
 

實(shí)際效果:假設(shè)給定目錄"/media/data/programmer/project/python" ,備份路徑"/home/diegoyun/backup/“ , 則會(huì)將python目錄下的文件按照全路經(jīng)備份到備份路徑下,形如:

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

復(fù)制代碼代碼如下:

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

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 卢湾区| 五家渠市| 育儿| 青岛市| 卢湾区| 陈巴尔虎旗| 轮台县| 西峡县| 白银市| 石狮市| 新源县| 兰西县| 英德市| 章丘市| 赫章县| 新邵县| 米林县| 大同县| 容城县| 瓮安县| 寿宁县| 疏附县| 重庆市| 姜堰市| 余江县| 疏附县| 长宁区| 绥宁县| 电白县| 防城港市| 商河县| 新昌县| 惠安县| 鸡西市| 厦门市| 新昌县| 兴宁市| 柳林县| 桑日县| 金门县| 江陵县|