適合情況:
- 大的文件夾下有許多個不同文件的不同名字較小文件夾
- 部分較小文件夾有同名文件夾
- 例如Windows下有如下形式目錄結構
- d:\data\A\output
- d:\data\B\output
- d:\data\C\output
- d:\data\D\output
- d:\data\E\
- 例如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!!")