[python] 批量更改不同文件夹里同名文件夹名字并移动到一起

适合情况:

  • 大的文件夹下有许多个不同文件的不同名字较小文件夹
  • 部分较小文件夹有同名文件夹
    • 例如Windows下有如下形式目录结构
      • d:\data\A\output
      • d:\data\B\output
      • d:\data\C\output
      • d:\data\D\output
      • d:\data\E\
  • 本程序能够将所有的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!!")
posted @ 2020-08-27 00:17  NAIXIL  阅读(802)  评论(0编辑  收藏  举报