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时区设置方法与pytz查询时区教程
Nov 27 Python
Python Tkinter简单布局实例教程
Sep 03 Python
Django的URLconf中使用缺省视图参数的方法
Jul 18 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
利用python-docx模块写批量生日邀请函
Aug 26 Python
pandas统计重复值次数的方法实现
Feb 20 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 Python
python实现局部图像放大
Nov 17 Python
Python中的datetime包与time包包和模块详情
Feb 28 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
php将数据库导出成excel的方法
2010/05/07 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python获取从命令行输入数字的方法
2015/04/29 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
pytorch实现查看当前学习率
2020/06/24 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
跟单文员岗位职责
2014/01/03 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
微电影大赛策划方案
2014/06/05 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
如何自己动手写SQL执行引擎
2021/06/02 MySQL
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL