multiprocessing 多线程拷贝文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
from multiprocessing import Pool

class CopyFile():
""" 实现多线程拷贝文件
1、获取要拷贝文件夹路径、名称,获取要拷贝文件的名称
2、复制原文件内容到新文件中
"""
# 1、获取要拷贝文件夹路径
# 2、获取要拷贝文件夹名称
# 3、获取要拷贝文件夹内文件名称列表
# 4、创建新文件夹
# 5、打开要拷贝的原文件
# 6、读取要拷贝的原文件内容
# 7、打开新文件
# 8、写入新文件内容
# 9、关闭原文件
# 10、关闭新文件

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")


原文地址:https://www.cnblogs.com/simplezhuo/p/9814769.html