编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

界面工厂编程视频教程广告联系qq1031180668广告位
查看: 34|回复: 0

[python] python多进程文件备份

[复制链接]
  • ta_mind

    5 天前
  • classn_01: 68 classn_02

    [LV.6]常住居民II

    884

    主题

    1604

    帖子

    3106

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3106

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

    发表于 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-6-19 16:36 , Processed in 0.156251 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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