python备份文件的脚本_python

实际效果:假设给定目录"/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()

时间: 2024-07-31 16:40:05

python备份文件的脚本_python的相关文章

Python备份Mysql脚本_python

复制代码 代码如下: #!/usr/bin/python  import os  import time  import ftplib  import traceback  #config vars  systempathchr="/" #路径分割符,*nix用"/" win32用"\\"  dbuser="root" #数据库用户名  dbpwd="dbpwd" #数据库密码  dbnamelist=[&

Python编写简单的HTML页面合并脚本_python

最近写一个BootStrap页面...因为功能需要所以决定一个页面解决所有问题,然后用jQuery来动态显示功能....然而这样做的话页面会相当庞大,一堆隐藏模态窗口和功能div都堆在一起看起来挺难受的  然后想了下就用Python写了个小脚本用来支持<include>标签,用处是合并外部html文件,来强行分文件编写单个庞大的HTML页面  用了下感觉挺好用的,分享给大家  使用方法:  HTML中使用<include src="">标签来导入其他HTML代码

Python实现从脚本里运行scrapy的方法_python

本文实例讲述了Python实现从脚本里运行scrapy的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: #!/usr/bin/python import os os.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings') #Must be at the top before other imports from scrapy import log, signals, project from scrapy.x

使用python编写批量卸载手机中安装的android应用脚本_python

该脚本的功能是卸载android手机中安装的所有第三方应用,主要是使用adb shell pm.adb uninstall 命令,所以使用的前提是需要配好adb的环境变量,下面上代码: #!/usr/bin/env python import os def uninstall(): os.popen("adb wait-for-device") print "start uninstall..." for packages in os.popen("adb

用Python编写一个基于终端的实现翻译的脚本_python

为什么写这个程序,为什么不给这个程序配备gui?原因很简单,因为我是一个命令行控,Linux习惯了不习惯了鼠标,总觉得点着不如敲命令快,各位在看这篇文章就说明和本人有相同的爱好.这个用python写的翻译工具是通过google来实现的,由于google返回的数据不是很规范(或者说我没有找到规律),现在前三项能正常显示(源词,翻译结果,和汉语拼音).下面的词性和其他释义可能不同,见谅,望大神可以指点下小弟和帮小弟完善,这里赶紧不尽. 好了不费话了,下面放代码: #!/usr/bin/env pyt

在IE中使用Python作为开发脚本

在IE中使用Python作为开发脚本 目前IE支持的客户端脚本语言常见的有VBScript和JavaScript,这两种脚本语言在操作页面元素方面基本能满足一般应用的需要,可通过和COM集成来获得扩展功能. 本文提供一种将Python作为IE客户端脚本语言的方法,利用Python的简洁和可扩展性使web应用在客户端可实现更好的交互.也可用Python内置的网络功能,更容易地实现AJAX的功能. 根据在IE中使用javascript的语法,可以猜到在IE中使用Python的语法是: <script

python制作企业邮箱的爆破脚本_python

按照师傅给的任务,写了一个企业邮箱的爆破脚本,后续还有FTP,SSH等一些爆破的脚本. 我先说下整体思路: 总体就是利用python的poplib模块来从pop3服务器上交互,根据获取的相关信息,产生结果.POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然会回复一个信息. 1.首先验证参数是否正确     Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始 2.然后从用户密码文件中读取信息 3.pop.ge

Python实现的Google IP 可用性检测脚本_python

需要 Python 3.4+,一个参数用来选择测试搜索服务还是 GAE 服务.测试 GAE 服务的话需要先修改开头的两个变量.从标准输入读取 IP 地址或者 IP 段(形如 192.168.0.0/16)列表,每行一个.可用 IP 输出到标准输出.实时测试结果输出到标准错误.50 线程并发. checkgoogleip #!/usr/bin/env python3 import sys from ipaddress import IPv4Network import http.client as

写了个监控nginx进程的Python脚本_python

复制代码 代码如下: #!/usr/bin/env python import os, sys, time while True: time.sleep(3) try: ret = os.popen('ps -C nginx -o pid,cmd').readlines() if len(ret) < 2: print "nginx process killed, restarting service in 3 seconds." time.sleep(3) os.system(