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字典序问题实例
Sep 26 Python
python进程类subprocess的一些操作方法例子
Nov 22 Python
分析在Python中何种情况下需要使用断言
Apr 01 Python
python之Character string(实例讲解)
Sep 25 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
简单了解python模块概念
Jan 11 Python
使用Eclipse如何开发python脚本
Apr 11 Python
Django中信号signals的简单使用方法
Jul 04 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
浅谈电磁辐射对健康的影响
2021/03/01 无线电
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
php 静态变量的初始化
2009/11/15 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
JavaScript中的集合及效率
2010/01/08 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
Python3 能振兴 Python的原因分析
2014/11/28 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python用700行代码实现http客户端
2021/01/14 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
电子商务专业个人的自我评价
2013/12/19 职场文书
高一物理教学反思
2014/01/24 职场文书
自荐信的格式
2014/03/10 职场文书
日化店促销方案
2014/03/26 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python