python 實戰:檔案備份小程式

來源:互聯網
上載者:User
import  osimport  shutilimport  datetime''' 作用:將目錄備份到其他路徑。實際效果:假設給定目錄"/media/data/programmer/project/python" ,備份路徑"/home/diegoyun/backup/“ ,則會將python目錄備份到備份路徑下,形如:/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz ..用法:更改這兩個參數.backdir:備份目的地.copydirs:想要備份的檔案夾.''' def  mainLogic():     # add dirs you want to copy     backdir = " d:\\test "      print (backdir)    copydirs = []    copydirs.append( " d:\\temp " );     # copydirs.append("d:\\test");              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()

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.