0
A
回答
6
你不需要任何第三方库。只需为每个请求创建一个线程,启动线程,然后等待所有这些线程在后台完成,或者在下载图像时继续执行应用程序。
import threading
results = []
def getter(url, dest):
results.append(urllib.urlretreave(url, dest))
threads = []
for x in range(0,10):
t = threading.Thread(target=getter, args=('http://test.com/file %s.png' % x,
'temp/file %s.png' % x))
t.start()
threads.append(t)
# wait for all threads to finish
# You can continue doing whatever you want and
# join the threads when you finally need the results.
# They will fatch your urls in the background without
# blocking your main application.
map(lambda t: t.join(), threads)
您还可以选择创建一个线程池,将让urls
和dests
从队列中。
如果您使用Python 3,它已经在futures
模块中为您实施。
2
像这样的东西应该帮助你
import grequests
urls = ['url1', 'url2', ....] # this should be the list of urls
requests = (grequests.get(u) for u in urls)
responses = grequests.map(requests)
for response in responses:
if 199 < response.status_code < 400:
name = generate_file_name() # generate some name for your image file with extension like example.jpg
with open(name, 'wb') as f: # or save to S3 or something like that
f.write(response.content)
这里只图像的下载将是平行的,但每个图像内容写入文件将是连续的,所以你可以创建一个线程或做其他事,使之并行或异步
相关问题
- 1. 获取图像异步
- 2. 如何从firebase存储获取react.js的异步图像数据?
- 3. 在Azure Blob存储中获取图像
- 4. 存储图像并获取图像
- 5. 的Android异步获取图像
- 6. 插入图像获取异步错误
- 7. 异步获取图像并设置setNeedsDisplay
- 8. DDD和异步存储库
- 9. 获取图像的URI存储在isolatedstorage
- 10. 使用iOS存储和同步图像
- 11. 异步保存图像
- 12. 获取存储在可绘制图像中的图像的URI
- 13. 使用CodeIgniter在mysql中存储和获取图像
- 14. 如何存储和获取图像变量(SESSION)的图像?
- 15. 异步图像下载并存储在一个ImageView数组
- 16. 异步请求图像后获取图像的大小
- 17. 在android中的异步图像列表和缓存
- 18. 如何:在SD卡中存储图像,存储和获取配置文件的共享首选图像路径
- 19. Node.js存储图像。在前端获取这些图像
- 20. 如何在Python中异步获取文件的差异
- 21. 获取和存储python类的方法
- 22. 使用Flask(Python)在Google数据存储中存储图像
- 23. 如何从ip摄像头获取图像并将图像存储在openCV中
- 24. Flux Utils存储和异步定时器
- 25. WP7:获取图像的名称哪些图像存储在Libary图片中?
- 26. 获取存储在Titanium中PhotoGallery中的图像的完整图像路径
- 27. React Native获取异步存储返回未处理的承诺
- 28. 在没有模块和Python细节的Python中获取图像
- 29. 在OpenCV中存储图像和指针
- 30. 如何从图库中获取图像,获取图像名称并将其保存在内部存储器中并获取该图像的路径
棒极了。我不知道我到目前为止还没有多线程的生活。谢谢 – Diolor
非常简单而有用的答案! “地图”的使用非常好(以前没有用过,但我现在正在学习它) – Heartinpiece