python实现某目录下将多个文件夹内的文件复制到一个文件夹中

时间:2021-08-07 12:33:59

  现实生活中,我们经常有这样的需求,如下图,有三个文件夹,文件夹1内含有1.txt文件

文件夹2中内含有2.txt文件,文件夹3中含有3.txt文件。我们有时候需要把1.txt, 2.txt, 3.txt文件

复制到同个文件夹中。

python实现某目录下将多个文件夹内的文件复制到一个文件夹中

  下面介绍一下如何使用python实现该功能:

import os
import shutil

def CreateDir(path):
    isExists=os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        os.makedirs(path) 
        print(path+' 目录创建成功')
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print(path+' 目录已存在')


def CopyFile(filepath, newPath):
    # 获取当前路径下的文件名,返回List
    fileNames = os.listdir(filepath) 
    for file in fileNames:
        # 将文件命加入到当前文件路径后面
        newDir = filepath + '/' + file 
        # 如果是文件
        if os.path.isfile(newDir):  
            print(newDir)
            newFile = newPath + file
            shutil.copyfile(newDir, newFile)
        #如果不是文件,递归这个文件夹的路径            
        else:
            CopyFile(newDir,newPath)                

if __name__ == "__main__":
    path = input("输入需要复制文件目录:")
    # 创建目标文件夹
    mkPath = path + "/总文件/"
    CreateDir(mkPath)
    CopyFile(path,mkPath)

  运行该脚本,然后输入文件夹1,文件夹2,文件夹3所在的路径,就可以将文件夹1,文件夹2

文件夹3里面的文件复制到名为总文件的文件夹中。