python 根据地址列表多线程下载图片
时间: 2023-10-29 22:05:18 浏览: 51
可以使用Python的多线程库`threading`和图片下载库`requests`来实现多线程下载图片。以下是一个简单的示例代码:
```python
import requests
import threading
def download_image(url, file_name):
response = requests.get(url)
with open(file_name, "wb") as f:
f.write(response.content)
def main():
urls = [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg",
"https://example.com/image3.jpg"
]
threads = []
for i, url in enumerate(urls):
file_name = f"image{i+1}.jpg"
t = threading.Thread(target=download_image, args=(url, file_name))
threads.append(t)
t.start()
for t in threads:
t.join()
print("All images downloaded.")
if __name__ == "__main__":
main()
```
在这个示例中,我们定义了一个`download_image`函数来下载单个图片,然后使用一个循环来创建多个线程,并将它们的执行任务指定为`download_image`函数。最后,等待所有线程完成后输出提示信息。注意,在使用`threading`库时,要确保线程之间的操作是线程安全的。在这个示例中,我们避免了多个线程同时写入同一个文件的情况,因为每个线程都会写入不同的文件。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)