python实现在一个文件夹内递归复制批量文件到指定文件夹

需求:
文件夹“sourceDir_1 ”内包含300多款游戏的图片素材文件夹,每个游戏为一个子文件夹,子文件夹内可能还有子文件夹;
现在需要把“sourceDir_1 ”文件夹下的文件名中所有包含"icon"的图片批量复制到指定文件夹“targetDir_1 ”内。

实现方法:
通过python的os、re两个模块实现批量复制文件名中包含指定字符的文件,到指定文件夹下

import os
import re

#使用Python实现从各个子文件夹中复制指定文件的方法
# 递归复制文件夹内的文件
def CopyFiles(sourceDir, targetDir):
    for file in os.listdir(sourceDir):
        try:

            sourceDir1 = os.path.join(sourceDir, file)  # 路径名拼接
            targetDir1 = os.path.join(targetDir, file)

            print("sourceDir1" + sourceDir1)
            print("targetDir1" + targetDir1)

            for file in os.listdir(sourceDir1):
                sourceDir2 = os.path.join(sourceDir1, file)
                print(sourceDir2 + "__sourceDir2")

                if re.search('.*(icon).+', file ,re.I):
                    sourceFile =  sourceDir2
                    print(file)
                    print("sourceFile__" + sourceFile)
                    targetFile = os.path.join(targetDir1, file)
                    print("目标文件路径__" + targetFile)
                    if os.path.isfile(sourceFile):
                        if not os.path.exists(targetDir1):
                            os.makedirs(targetDir1)
                            print("文件夹已创建")
                        else:
                            print("文件夹已存在")
                        if not os.path.exists(targetFile) or (os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))):
                            open(targetFile, "wb").write(open(sourceFile, "rb").read())
                            print(targetFile + " copy succeeded")
                        else:
                            print("复制失败")
                    else:
                        print("文件不存在")

                else:
                    print("没有找到icon")
        except OSError:
            pass
        continue
    print('end')

if __name__ == '__main__':
    sourceDir_1 = 'C:\\Users\\Desktop\\sourceDir'
    targetDir_1 = 'C:\\Users\\Desktop\\targetDir'
    CopyFiles(sourceDir_1, targetDir_1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。