适合情况:
- 大的文件夹下有许多个不同文件的不同名字较小文件夹
- 部分较小文件夹有同名文件夹
- 例如Windows下有如下形式目录结构
- d:dataAoutput
- d:dataBoutput
- d:dataCoutput
- d:dataDoutput
- d:dataE
- 例如Windows下有如下形式目录结构
- 本程序能够将所有的output文件夹复制到
d:\all_output
文件夹下,且分为$A-ouput, B-output$...
import os,sys
import shutil
def copy_folder(rootpath, dstpath):
# 读取文件夹目录,返回指定的文件夹包含的文件或文件夹的名字的列表
dirs = os.listdir(rootpath)
# 将读取的文件夹名字转成数组形式
for dir in dirs:
# print(dir)
# 移动符合条件的文件夹并重命名
if os.path.exists(rootpath + os.path.sep + dir + os.path.sep + 'output'):
shutil.copytree(rootpath + os.path.sep + dir + os.path.sep + 'output', dstpath + os.path.sep + 'all' + os.path.sep + dir+'-output')
else:
continue
if __name__ == '__main__':
rootpath = 'D:\data'
dstpath = 'D:\all_output'
copy_folder(rootpath, dstpath)
print("Finish!!")