#!/usr/bin/env python# -*- coding: utf-8 -*-import osfrom multiprocessing import Poolclass CopyFile(): """ 实现多线程拷贝文件 一、获取要拷贝文件夹路径、名称,获取要拷贝文件的名称 二、复制原文件内容到新文件中 """ # 一、获取要拷贝文件夹路径 # 二、获取要拷贝文件夹名称 # 三、获取要拷贝文件夹内文件名称列表 # 四、建立新文件夹 # 五、打开要拷贝的原文件 # 六、读取要拷贝的原文件内容 # 七、打开新文件 # 八、写入新文件内容 # 九、关闭原文件 # 十、关闭新文件 def copyFile(self,path,oldFolderName): print(oldFolderName) newFolderName = oldFolderName+"[复制]" print(newFolderName) if not os.path.exists(newFolderName): os.makedirs(newFolderName) print("文件夹建立成果") oldFileNameList = os.listdir(oldFolderName) print(oldFileNameList) pool = Pool(5) for file in oldFileNameList: self.copyFileExcut(path,oldFolderName,newFolderName,file) pool.close()#关闭进程池,再也不接受新的进程 pool.join()#主进程阻塞等待子进程的退出 ## 读写文件 def copyFileExcut(self,path,oldFolderName,newFolderName,fileName): try: oldF = open(path+u"\\"+oldFolderName+u"\\"+fileName, 'r',encoding='UTF-8') copyContent = oldF.read() print(copyContent) finally: if oldF: oldF.close() try: newF = open(path+"\\"+newFolderName+"\\"+fileName, 'w') newF.write(copyContent) finally: if newF: newF.close()if __name__ == '__main__': path = os.getcwd() print(path) cpf = CopyFile() cpf.copyFile(path,"test")