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


  • 相关阅读:

    k
    通过类名调用类方法
    类Area的getArea方法是一个重载方法
    构造cry
    两个lader对象共享bottom
    向一个方法的基本数据类型参数传值
    Circle
    常量的用法
    显示本机时间
  • 原文地址:https://www.cnblogs.com/simplezhuo/p/9814769.html
Copyright © 2020-2023  润新知