A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hongping2018 初级黑马   /  2018-10-7 21:34  /  833 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# -*- coding:utf-8 -*-
from multiprocessing import Pool,Manager
import os
def copyFileTask(name,oldFolderName,newFolderName,queue):
    fr = open(oldFolderName+"/"+name)
    fw = open(newFolderName+"/"+name,"w")
    content = fr.read()
    fw.write(content)
    fr.close()
    fw.close()
    queue.put(name)
def main():
   
    #1.获取用户想要copy的文件夹的名字
    oldFolderName = input("请输入需要拷贝的用户名:")
    #2.创建一个新的文件夹
    newFolderName = oldFolderName+"-副本"
    os.mkdir(newFolderName)
    #3.获取old文件夹里所有文件的名字
    fileName = os.listdir(oldFolderName)
    #4.用多进程对每个文件进行复制
    pool = Pool(3)
    queue = Manager().Queue()
    for name in fileName:
        pool.apply_async(copyFileTask,args=(name,oldFolderName,newFolderName,queue))
   
    num = 0
    allNum = len(fileName)
    while True:
        queue.get()
        num +=1
        copyRate = num /allNum
        print("\r文件已经拷贝了%.2f%%" %(copyRate*100),end="")
        if num == allNum:
            break
    print("\n拷贝完成")
    #pool.close()
    #pool.join()
if __name__ =="__main__":
    main()

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马