zoukankan      html  css  js  c++  java
  • 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")


  • 相关阅读:
    最大子序列和问题之算法优化
    数据揭秘:低学历成功逆袭概率有多少?感谢父母送我读书!
    据说这份高考卷,只有程序员能得满分!
    牛客OI赛制测试赛2
    斯特林公式
    N!的近似值_斯特林公式
    矩阵快速幂
    回文树
    回文树入门
    环和链的判断
  • 原文地址:https://www.cnblogs.com/simplezhuo/p/9814769.html
Copyright © 2011-2022 走看看