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获取apk文件URL地址实例
Nov 01 Python
Python生成pdf文件的方法
Aug 04 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
详解Django中Request对象的相关用法
Jul 17 Python
python实现求特征选择的信息增益
Dec 18 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
如何利用python读取micaps文件详解
Oct 18 Python
django中ImageField的使用详解
Dec 21 Python
python urllib和urllib3知识点总结
Feb 08 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 clearstatcache()函数详解
2010/03/02 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
webpack优化的深入理解
2018/12/10 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
python类装饰器用法实例
2015/06/04 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
python实现ID3决策树算法
2017/12/20 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python中删除某个元素的方法解析
2019/11/05 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
python中的插入排序的简单用法
2021/01/19 Python
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
COS美国官网:知名服装品牌
2019/04/08 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
反邪教标语
2014/06/23 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
公司离职证明样本
2014/09/13 职场文书
工作作风建设心得体会
2014/10/22 职场文书
员工2014年度工作总结
2014/12/09 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书