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基于DES算法加密解密实例
Jun 03 Python
教大家使用Python SqlAlchemy
Feb 12 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
Python List cmp()知识点总结
Feb 18 Python
Python GUI编程完整示例
Apr 04 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
kali中python版本的切换方法
Jul 11 Python
浅谈Python 函数式编程
Jun 20 Python
详解Python流程控制语句
Oct 28 Python
Python 求向量的余弦值操作
Mar 04 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
上手简单,功能强大的Python爬虫框架——feapder
Apr 27 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
优化使用mysql存储session的php代码
2008/01/10 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
PHP使用递归生成文章树
2015/04/21 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
一看就懂得Python的math模块
2018/10/21 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
女儿十岁生日答谢词
2014/01/27 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
保证书范文大全
2014/04/28 职场文书
火箭队口号
2014/06/18 职场文书
城管个人总结
2015/02/28 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server