python备份文件的脚本


Posted in Python onAugust 11, 2008

实际效果:假设给定目录"/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()
Python 相关文章推荐
跟老齐学Python之有容乃大的list(1)
Sep 14 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
python批量复制图片到另一个文件夹
Sep 17 Python
使用python判断你是青少年还是老年人
Nov 29 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 Python
基于Python测试程序是否有错误
May 16 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
python Timer 类使用介绍
Dec 28 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 Python
Python 文件操作技巧(File operation) 实例代码分析
Aug 11 #Python
python下如何让web元素的生成更简单的分析
Jul 17 #Python
py中的目录与文件判别代码
Jul 16 #Python
Python Mysql自动备份脚本
Jul 14 #Python
python远程登录代码
Apr 29 #Python
复制粘贴功能的Python程序
Apr 04 #Python
推荐下python/ironpython:从入门到精通
Oct 02 #Python
You might like
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
ES6新增的math,Number方法
2017/08/06 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
进一步理解Python中的函数编程
2015/04/13 Python
python自定义异常实例详解
2017/07/11 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
圣诞节红领巾广播稿
2014/02/03 职场文书
先进集体获奖感言
2014/02/13 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
前台接待员岗位职责
2015/04/15 职场文书
少年雷锋观后感
2015/06/10 职场文书
党员反邪教心得体会
2016/01/15 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书