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字典实现简单的三级菜单(实例讲解)
Jul 31 Python
Python实现屏幕截图的两种方式
Feb 05 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
在windows下Python打印彩色字体的方法
May 15 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
python安装gdal的两种方法
Oct 29 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
pycharm 实现调试窗口恢复
Feb 05 Python
Python爬虫基础讲解之请求
May 13 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
收音机术语解释
2021/03/01 无线电
PHP4实际应用经验篇(8)
2006/10/09 PHP
将php数组输出html表格的方法
2014/02/24 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Python ftp上传文件
2016/02/13 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
python中字符串内置函数的用法总结
2018/09/13 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
Python实现Linux监控的方法
2019/05/16 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
党员自我剖析材料范文
2014/10/06 职场文书
党的群众路线调研报告
2014/11/03 职场文书
护士辞职信怎么写
2015/02/27 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers