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生成随机数的方法
Jan 14 Python
Python程序员开发中常犯的10个错误
Jul 07 Python
Python中的ceil()方法使用教程
May 14 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
Python实现密码薄文件读写操作
Dec 16 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
Python 实现向word(docx)中输出
Feb 13 Python
Python Json数据文件操作原理解析
May 09 Python
python中upper是做什么用的
Jul 20 Python
Elasticsearch 索引操作和增删改查
Apr 19 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
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
脚本收藏iframe
2006/07/21 Javascript
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
input框中的name和id的区别
2016/11/16 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
python定义具名元组实例操作
2021/02/28 Python
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
班级安全教育实施方案
2014/02/23 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Linux中各个目录的作用与内容
2022/06/28 Servers