下载faceScrub人脸数据库 (多线程版本)
来源:互联网 发布:知乎搞笑问答 编辑:程序博客网 时间:2024/06/06 02:56
在上一篇博文中,我用单线程版本的Python来实现下载脚本,其中最大的不足在于它是单线程的,很慢。
其实,下载网络图片是天然的具有并行性的,因为下载每一副图片都是独立的,甚至线程之间都不用交互。
-*- coding: utf-8 -*- """ Created on Tue Apr 07 20:19:38 2015 @author: Chenriwei """ import threading import time import urllib def download_and_save(url,savename): try: urlopen=urllib.URLopener() fp = urlopen.open(url) data = fp.read() fp.close() fid=open(savename,'w+b') fid.write(data) print "下载成功:"+ url fid.close() except IOError: print "下载失败:"+ url def get_all_iamge(filename): fid=open(filename) lines=fid.readlines() for line in lines: line_split=line.split('\t') name=line_split[0] image_id=line_split[1] face_id=line_split[2] box=line_split[4] image_url=line_split[3] if False == os.path.exists(name): os.mkdir(name) savefile=name+'/'+image_id+'.jpg' #最多1000个线程, while True: if(len(threading.enumerate()) < 1000): break t = threading.Thread(target=download_and_save,args=(image_url,savefile,)) t.start() if __name__ == "__main__": get_all_iamge('facescrub_actresses.txt')用多线程去下载图片,明显就快很多了,看自己电脑的网速,一个小时一般就可以都下载完数据库。
阅读全文
0 0
- 【Python学习】下载faceScrub人脸数据库 (多线程版本)
- 下载faceScrub人脸数据库 (多线程版本)
- 下载faceScrub人脸数据库 (多线程版本)
- Python多线程下载FaceScrub人脸数据库
- 下载faceScrub人脸数据库(单线程版本)
- 下载faceScrub人脸数据库(单线程版本)
- 【Python学习】下载faceScrub人脸数据库(单线程版本)
- 多线程断点下载实现(J2SE版本)
- 多线程下载更新版本_
- 多线程下载的写法,java版本
- android_33_多线程下载(Java SE版本)
- 多线程下载器(不含数据库部分)
- 数据库大数据量导出多线程版本
- oracle 数据库所有版本软件下载
- oracle数据库各种版本下载大全
- oracle数据库各版本下载地址
- 多线程下载(转)
- 多线程下载(100%)
- 微信公众平台 java 处理消息 3
- spring boot 启动错误:Could not resolve placeholder
- 《利用Python进行数据分析》笔记---第4章NumPy基础:数组和矢量计算
- POJ 3252(数位DP || 组合数)
- 对象与类基础
- 下载faceScrub人脸数据库 (多线程版本)
- c++ 有什么好书推荐?
- 多播地址基础
- element ui 对话框el-dialog关闭事件
- uva11997 K Smallest Sums(优先队列)
- [PAT乙级]1038. 统计同成绩学生(20)
- windows下编译可在visual studio中调试的FFmpeg
- 异常:Lock wait timeout exceeded; try restarting transaction
- 让我们谈谈虚拟机的那些事儿