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模拟Django框架实例
May 17 Python
python线程中同步锁详解
Apr 27 Python
Python实现图片拼接的代码
Jul 02 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
pymysql的简单封装代码实例
Jan 08 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
详解Python openpyxl库的基本应用
Feb 26 Python
你需要掌握的20个Python常用技巧
Feb 28 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
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
Python解释执行原理分析
2014/08/22 Python
Python+django实现简单的文件上传
2016/08/17 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
树莓派升级python的具体步骤
2020/07/05 Python
java字符串格式化输出实例讲解
2021/01/06 Python
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
停车位租赁协议书
2014/09/24 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
见习报告格式要求
2014/11/04 职场文书
六年级学生期末评语
2014/12/26 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
房屋产权证明书
2015/06/19 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers