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 开发Activex组件方法
Nov 08 Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
使用基于Python的Tornado框架的HTTP客户端的教程
Apr 24 Python
python动态参数用法实例分析
May 25 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
python实现图像识别功能
Jan 29 Python
python 接口返回的json字符串实例
Mar 27 Python
Python实现时钟显示效果思路详解
Apr 11 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
Python如何读取文件中图片格式
Jan 13 Python
jupyter lab文件导出/下载方式
Apr 22 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 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 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
python 对xml解析的示例
2021/02/27 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
使用html5制作loading图的示例
2014/04/14 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
大学生个人求职信范文
2013/09/21 职场文书
大学校园活动策划书
2014/02/04 职场文书
工作决心书
2014/03/11 职场文书
经济类毕业生求职信
2014/06/26 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Python中的 enumerate和zip详情
2022/05/30 Python
Mysql数据库group by原理详解
2022/07/07 MySQL