python 图片地址列表长度为13200,采用6线程下载图片到同一文件夹中
时间: 2024-05-06 07:14:55 浏览: 12
你可以使用 Python 中的 `threading` 模块来实现多线程下载图片。以下是一个示例代码,其中使用了 `ThreadPoolExecutor` 来创建线程池,并使用 `requests` 库来发送 HTTP 请求下载图片:
```python
import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
# 图片地址列表
url_list = [...]
# 同一文件夹路径
folder_path = '/path/to/folder'
# 定义下载函数
def download(url):
response = requests.get(url)
if response.status_code == 200:
file_name = url.split('/')[-1]
file_path = f'{folder_path}/{file_name}'
with open(file_path, 'wb') as f:
f.write(response.content)
print(f'{url} downloaded.')
else:
print(f'{url} download failed.')
# 创建线程池
with ThreadPoolExecutor(max_workers=6) as executor:
# 提交下载任务
futures = [executor.submit(download, url) for url in url_list]
# 等待任务完成
for future in as_completed(futures):
pass
```
在上述代码中,我们首先定义了一个 `download` 函数,用于下载单个图片。然后,使用 `ThreadPoolExecutor` 创建了一个最大线程数为 6 的线程池,并将下载任务提交到线程池中。最后,使用 `as_completed` 函数等待所有任务完成。下载完成后,所有图片都会保存在同一文件夹中。