Python抓取CSV文件中数据
来源:互联网 发布:vb获取电脑名称 编辑:程序博客网 时间:2024/05/17 23:23
最近在用Caffe_Windows做CNN分类识别。先前数据采集这块不是由我负责的,今天突然也想把这块跑通,这样后面就可以玩一些自己的想要的识别了。由于CNN training Datasets特别重要,抓取数据必不可少。
例程数据集:wget -c https://storage.googleapis.com/openimages/2016_08/images_2016_08_v5.tar.gz
首先查看一下该数据集:
# -*- coding : utf-8 -*-import csvimport osfrom urllib import requestfile = open('./validation/images.csv', 'r', encoding='gb18030', errors='ignore')imagereader = csv.DictReader(file)for item in imagereader: print(item)
这里特意选择DictReader,而不是reader,返回dict类型,便于操作,部分结果如下:
这样我们需要下载图片的话,通过调用
item['OriginalURL']
就可以了。初步实现代码:
for item in imagereader: # print(item) filename = item['OriginalURL'].split('/')[-1] for url in item['OriginalURL'].split('\n'): print("Download:", url) renum = 3 while os.path.exists(filename) == False and renum > 0: try: web = request.urlopen(url, timeout=3) img = open(filename, 'wb') img.write(web.read()) img.close() break except IOError as e: print(e) renum -= 1又加了文件查重以及timeout。测试显示速度很慢
为了提高效率,使用多线程:
# -*- coding : utf-8 -*-import csvimport osfrom urllib import requestimport threadingfile = open('./validation/images.csv', 'r', encoding='gb18030', errors='ignore')class CsvReaderImage(threading.Thread): def __init__(self): threading.Thread.__init__(self) self._file = file def action(self): imagereader = csv.DictReader(self._file) for item in imagereader: # print(item) filename = item['OriginalURL'].split('/')[-1] for url in item['OriginalURL'].split('\n'): print("Download:", url) renum = 3 while os.path.exists(filename) == False and renum > 0: try: web = request.urlopen(url, timeout=3) img = open(filename, 'wb') img.write(web.read()) img.close() break except IOError as e: print(e) renum -= 1if __name__ == '__main__': for _ in range(3): D = CsvReaderImage() D.action()下载结果:
体会:
虽然功能实现了,但是还有考虑不足的地方,比如避免重复下载,需要添加cache;如何断点续传等,后面找时间再优化完善吧。
0 0
- Python抓取CSV文件中数据
- Python抓取CSV文件中数据【V2】
- 抓取数据为json文件,读入csv
- 利用python抓取搜狗关于数据分析的文章并保存到csv文件
- python读出mysql数据写出到csv文件中[整理]
- java将float数据写入csv 并在python中读取csv文件
- 【python数据分析】CSV文件数据读写
- python提取百万数据到csv文件
- python解析csv文件 提取数据
- 使用python pandas读取csv文件数据
- python的读取csv文件数据
- 使用python将csv文件数据可视化
- Python中读取CSV文件的方法
- python中csv文件的读写
- python中读写csv文件的方法
- Python中如何读取CSV文件
- Qt 从csv文件中读取数据
- VTK从CSV文件中读取数据
- git学习笔记3—工作区与暂存区
- Rxjs学习
- c#插入时间到sqlserver中去
- 微信小程序开发踩坑指南
- JAVA中的反射机制
- Python抓取CSV文件中数据
- Spark 属性使用说明
- Docker安装Mysql数据库容器
- DOM学习
- 算法提高 9-3摩尔斯电码
- 浅析Spring IoC源码(十一)Spring refresh()方法解析后记2
- I / O 流
- C++——tarjan模板
- 使用Intellij创建第一个Springboot程序