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常见文件操作的函数示例代码
Nov 15 Python
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 Python
python读取文本绘制动态速度曲线
Jun 21 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
python判断自身是否正在运行的方法
Aug 08 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Django视图扩展类知识点详解
Oct 25 Python
pytorch 修改预训练model实例
Jan 18 Python
Python网络编程之ZeroMQ知识总结
Apr 25 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
一个php作的文本留言本的例子(五)
2006/10/09 PHP
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
实现python版本的按任意键继续/退出
2016/09/26 Python
Numpy之文件存取的示例代码
2018/08/03 Python
python实现汉诺塔算法
2021/03/01 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
优秀民警事迹材料
2014/01/29 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
优秀团员自我评价
2015/03/10 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android