multiprocessing 多线程拷贝文件

#!/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")
相关文章
相关标签/搜索