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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值