编程论坛

 找回密码
 立即注册
广告联系qq1031180668广告位
查看: 95|回复: 0

[python] python多进程文件备份

[复制链接]

963

主题

1684

帖子

3257

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3257

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2018-5-29 18:11:25 | 显示全部楼层 |阅读模式
[Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
from multiprocessing import  Pool,Manager
import  os

def copyFileTask(name,oldFileName,newFilename,queue):
    #print(name)
    fr=open(oldFileName+"\\"+name,"r")
    fw =open(newFilename+"\\"+name, "w")
    fileData=fr.read()
    fw.write(fileData)
    fr.close()
    fw.close()
    queue.put(name)


def main():
    #0获取文件夹名字
    oldName=input("请输入文件夹名字:")
    #1创建一个空文件夹
    newName=oldName+"--备份"
    os.mkdir(newName)

    #2获取old文件夹所有的文件名
    fileNames=os.listdir(oldName)

    #3多进程的方式copy文件
    pool=Pool(5)
    queue=Manager().Queue()  #进程池里用消息队列需要用Manager类
    i = 0
    for name in fileNames:
        pool.apply_async(copyFileTask,args=(name,oldName,newName,queue))
        i+=1

   #4获取备份情况
    while True:
        getName=queue.get()
        if getName !="":
            print("正在备份-->%s"%getName)
            i-=1
            if i==0:
                break
    pool.close()
    pool.join()
    print("备份完毕")


if __name__=="__main__":
    main()



python多进程文件备份

python多进程文件备份



不积跬步,无以至千里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|小黑屋|sitemap|编程论坛 - 一个单纯的编程学习交流论坛 ( 豫ICP备15032706号 )

GMT+8, 2018-8-16 14:44 , Processed in 1.090864 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表