建立相同的目录树备份指定格式文件
我们经常会有这样一个需求:备份某个文件夹下的所有代码,图片,文档,并且希望与原来的文件夹有相同的目录结构(这样便于对应起来)。比如你需要备份服务器上的代码,然后把它删掉,在你不知道这些代码干什么用的时候,你只能把它原样备份下来,那么就需要建立与原来相同的目录结构。当文件数量众多,目录树比较深的情况下,手动干这件事就很麻烦了,并且显得很蠢有没有。作为一个程序员,肯定不能干这傻事!
本着自己动手丰衣足食的原则,写个python小程序搞定!!!
###########
#用于备份文件的小程序
#备份指定目录下的特定格式文件,并存放于相同目录下
##########
import os
import shutil
############
file_format='.m'
rootdir_source='C:\\work\\小工具\\测试'
rootdir_backup='C:\\work\\小工具\\备份文件'
##############
if not os.path.exists(rootdir_source):
print("所选文件不存在!!!")
if not os.path.exists(rootdir_backup):
os.mkdir(rootdir_backup)
path_list=[] #文件目录列表
for ls in os.walk(rootdir_source):
path_list.append(ls[0])
count=0
for path in path_list:
# print(path)
# print(os.listdir(path))
for i in os.listdir(path):
if os.path.splitext(i)[1]==file_format:
source_path=os.path.join(path,i)
target_path=rootdir_backup+path[len(rootdir_source):len(path)]
if not os.path.exists(target_path):
# os.mkdir(target_path)
os.makedirs(target_path)
shutil.copy(source_path,target_path)
count+=1
print('已备份:', count,'个文件')
print('备份完成!')
程序的思路很简单,首先获取文件夹下的所有目录列表(一直到最深一层目录),然后遍历这个目录列表,找到指定格式的文件,建立相同的目录复制过去即可。