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


  • 相关阅读:
    深入理解hadoop之MapReduce
    centos关机与重启命令
    hadoop学习笔记(1)
    配置ssh免密码登录设置后还是提示需要输入密码
    js获得URL中的参数
    SQLite介绍
    sql记录
    sql游标使用
    sql触发器
    sql函数
  • 原文地址:https://www.cnblogs.com/simplezhuo/p/9814769.html
Copyright © 2011-2022 走看看