设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2445|回复: 0

python多进程文件备份

[复制链接]

5

主题

63

金钱

111

积分

入门用户

发表于 2018-6-4 14:05:14 | 显示全部楼层 |阅读模式
  1. from multiprocessing import  Pool,Manager
  2. import  os

  3. def copyFileTask(name,oldFileName,newFilename,queue):
  4.     #print(name)
  5.     fr=open(oldFileName+"\"+name,"r")
  6.     fw =open(newFilename+"\"+name, "w")
  7.     fileData=fr.read()
  8.     fw.write(fileData)
  9.     fr.close()
  10.     fw.close()
  11.     queue.put(name)


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

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

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

  27.    #4获取备份情况
  28.     while True:
  29.         getName=queue.get()
  30.         if getName !="":
  31.             print("正在备份-->%s"%getName)
  32.             i-=1
  33.             if i==0:
  34.                 break
  35.     pool.close()
  36.     pool.join()
  37.     print("备份完毕")


  38. if __name__=="__main__":
  39.     main()
复制代码


python多进程文件备份.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

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