[python] 批量更改不同文件夹里同名文件夹名字并移动到一起
适合情况:
- 大的文件夹下有许多个不同文件的不同名字较小文件夹
- 部分较小文件夹有同名文件夹
- 例如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!!")