python 3.3 备份某个文件夹 小例

# -*- coding:gb2312 -*-  
import os
import shutil
import datetime

'''
	作用:将目录备份到其他路径
	实际效果:
	
	将 指定目录的“/Python/testPythonFiles”目录下的所有文件 
	备份到 另一指定目录的“\Code\backup”
	
	用法:更改这2个参数:
	backdir:备份目的地
	copydirs:想要备份的文件夹
	
'''

def mainLogic():
	#add dirs you want to copy
	backdir="D:\\baiDu\\.....\\Code\\backup"
	print("your target backup folder:" + backdir)
	
	copydirs=[]
	copydirs.append("D:\\baiDu\\......\\Python\\testPythonFiles");
	
	print("copying files --- ---")
	start=datetime.datetime.now()
	
	#generate a data folder for backup
	backdir=os.path.join(backdir,start.strftime("%Y-%m-%d"))
	print("back dir 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("new path 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):
	l=fullpath.split(os.path.sep)
	if l[-1]=="":
		tmp=l[-2]
	else:
		tmp=l[-1]
	return fullpath[0:len(fullpath)-len(tmp)-1]
	
def omitPrefix(fullpath,prefix):
	return fullpath[len(prefix)+1:]
	
mainLogic()


运行结果:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值