锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Python面试题--第71道题目--通过url使用多线程下载图像文件,并保存--2022年04月26日

时间:2023-08-12 16:37:02 202a交流电流变送器

目录

一、题目要求:

二、实操代码演示:

1、urls.txt文件

2、读取urls.txt中每一行url,添加到列表中。

3.创建线程类。

为方便线程类使用,创建下载图片的函数。


一、题目要求:

在urls.txt文件中包含多个图像Url,一行一个Url,请使用多线程下载这些图像文件Url顺序保存为0.jpg、1.jpg、2.jpg,依此类推。

二、实操代码演示:

1、urls.txt文件

https://img10.360buyimg.com/n1/jfs/t23722/106/2427071620/128371/2d7b202a/5b7e6e0bNc42f7eea.jpg http://img3m7.ddimg.cn/7/6/1468712527-1_b_1.jpg http://img3m8.ddimg.cn/87/34/25163808-1_b_1.jpg http://img3m8.ddimg.cn/11/8/23830598-1_b_1.jpg http://img3m1.ddimg.cn/71/7/23043311-1_b_1.jpg

2、读取urls.txt中每一行url,添加到列表中。

3.创建线程类。

为方便线程类使用,创建下载图片的函数。

from django import http from urllib3 import * import threading  http = PoolManager() disable_warnings()  f = open(r'D:\python_work\interview\mianshi100\urls.txt','r')  # window尽量不要在系统中使用相对路径,需要使用绝对路径,有时会认为不是在本目录下 # 带有反斜杠的时候,字符串前main加上r,不会被认为是转义符。 # f = open('url.txt','r') urllist = [] while True:     url = f.readline()     if url == '':         break     urllist.append(url.strip()) f.close() print(urllist)  class DownloadTread(threading.Thread):     def __init__(self, func, args):         super().__init__(target=func,args=args)  def download(filename,url):     response = http.request('GET',url)     f = open(filename,"wb") # 因为图片是二进制的,加上b”。     f.write(response.data)     f.close()     print('<',url,'>下载完成。')  for i in range(len(urllist)):     thread = DownloadTread(download,(str(i) '.jpg',urllist[i]))     thread.start()

执行结果如下:

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章