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中使用urllib2防止302跳转的代码例子
Jul 07 Python
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
Python中表示字符串的三种方法
Sep 06 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
Python中安装easy_install的方法
Nov 18 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
python接入支付宝的实例操作
Jul 20 Python
Python如何操作docker redis过程解析
Aug 10 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 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中current、next与reset函数用法实例
2014/11/17 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
python计算圆周率pi的方法
2015/07/11 Python
django中send_mail功能实现详解
2018/02/06 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
EJB的角色和三个对象
2015/12/31 面试题
课外访万家心得体会
2014/09/03 职场文书
办公室岗位职责
2015/02/04 职场文书
西岭雪山导游词
2015/02/06 职场文书
公司奖励通知
2015/04/21 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
《灰雀》教学反思
2016/02/19 职场文书
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL