当前位置: 首页 > 图文教程 > 脚本技术 > Python > python备份文件的脚本

Python
Python 调用DLL操作抄表机
python 输出一个两行字符的变量
用Python的urllib库提交WEB表单
Python 返回汉字的汉语拼音
python mysqldb连接数据库
python 判断自定义对象类型
Python字符串的encode与decode研究心得乱码问题解决方法
python 获取文件列表(或是目录例表)
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
python 获取et和excel的版本号
python ElementTree 基本读操作示例
python 判断一个进程是否存在
python thread 并发且顺序运行示例
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Python 解析XML文件
asp Http_Referer,Server_Name和Http_Host
Python 自动安装 Rising 杀毒软件
用python实现的可以拷贝或剪切一个文件列表中的所有文件
Python 正则表达式操作指南
python ip正则式

Python 中的 python备份文件的脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 170 ::
收藏到网摘: n/a

作用:将目录备份到其他路径。

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