Python多进程求助

@Ta 2021-02-02 1792点击
被下沉
import os, time
from multiprocessing import Pool


# 实现文件的拷贝
def copyFile(rPath, wPaht):
    fr = open(rPath, "rb")
    fw = open(wPaht, "wb")

    context = fr.read()
    fw.write(context)
    fr.close()
    fw.close()


path = r"F:\file"
topath = r"F:\tofile"

if __name__ == "__main__":
    # 读取path下的所有的文件
    filesList = os.listdir(path)

    start = time.time()
    pp = Pool()
    for fileName in filesList:
        pp.apply_async(copyFile, args=(os.path.join(path, fileName), os.path.join(topath, fileName)))

        pp.close()
        pp.join()
        end = time.time()
        print("总耗时: %0.2f" % (end - start))

QQ浏览器截图20210202141525.jpg
为什么是Pool not running?
小米8周年旗舰手机

回复列表(2|隐藏机器人聊天)
  • @Ta / 2021-02-02 / /
    没玩过Python,盲猜下你的pp.close(),pp.join(),应该放在for循环外面处理,你代码缩进错误了,放在for循环里面执行第一次就关闭了进程池对象,for循环执行第二次就报错了
  • @Ta / 2021-02-02 / /

    @胡哥,确实是这两个缩进搞错了,非常感谢
    小米8周年旗舰手机

添加新回复
回复需要登录