使用Python實現(xiàn)下載并保存網(wǎng)絡(luò)圖片
引言
今天我們來學(xué)習(xí)一個簡單有趣的 Python 項目:從網(wǎng)上下載圖片并保存到電腦!你不需要有編程經(jīng)驗,這篇文章將以最簡單的方式一步步教你完成。
項目目標
下載一張網(wǎng)絡(luò)圖片
在電腦上顯示圖片
保存圖片到本地文件
準備工作
我們需要用到兩個 Python 庫:
Pillow (PIL):用于處理圖片。
Requests:用于從網(wǎng)上獲取數(shù)據(jù)。
如果你還沒有安裝它們,可以在終端運行以下命令:
pip install pillow requests
代碼分解和講解
我們將代碼分成幾個簡單的部分。
1. 從網(wǎng)絡(luò)加載圖片
這個函數(shù)負責(zé)從指定的 URL 加載圖片,并返回一個圖片對象。
from PIL import Image import requests from typing import Optional def load_image_from_url(url: str) -> Optional[Image.Image]: """ 從指定的URL加載圖片并返回圖片對象。 參數(shù): url (str): 圖片的URL地址。 返回: Optional[Image.Image]: 如果加載成功,返回圖片對象;否則返回 None。 """ try: # 從URL獲取圖片數(shù)據(jù) with requests.get(url, stream=True) as response: response.raise_for_status() # 檢查請求是否成功 return Image.open(response.raw) except requests.exceptions.RequestException as e: print(f"網(wǎng)絡(luò)請求出錯: {e}") except IOError as e: print(f"圖片處理出錯: {e}") return None
關(guān)鍵點:
我們用 requests.get 獲取圖片數(shù)據(jù),并用 with 自動管理資源。
如果有網(wǎng)絡(luò)問題,raise_for_status() 會拋出錯誤,幫助我們發(fā)現(xiàn)問題。
Image.open 將圖片數(shù)據(jù)轉(zhuǎn)換為可以處理的圖片對象。
2. 保存圖片到本地
這個函數(shù)將圖片保存到你指定的路徑。
def save_image(image: Image.Image, file_path: str) -> None: """ 保存圖片到指定路徑。 參數(shù): image (Image.Image): 要保存的圖片對象。 file_path (str): 保存路徑。 """ try: image.save(file_path) print(f"圖片已保存為 {file_path}") except IOError as e: print(f"圖片保存出錯: {e}")
關(guān)鍵點:
如果保存時出現(xiàn)問題,比如路徑錯誤,IOError 會提示你。
3. 主程序邏輯
這是整個程序的入口。
if __name__ == "__main__": # 定義圖片的URL和保存路徑 url = "https://images.pexels.com/photos/531294/pexels-photo-531294.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2" local_file_path = "downloaded_image.jpg" # 加載圖片 image = load_image_from_url(url) if image: # 顯示圖片 image.show() # 保存圖片 save_image(image, local_file_path)
運行結(jié)果
程序會下載并顯示圖片。
圖片會被保存到你指定的位置,比如當(dāng)前文件夾下的 downloaded_image.jpg。
總結(jié)
這段代碼展示了如何用 Python 完成一個小項目。它既簡單又實用,是初學(xué)者學(xué)習(xí)編程的好例子。
到此這篇關(guān)于使用Python實現(xiàn)下載并保存網(wǎng)絡(luò)圖片的文章就介紹到這了,更多相關(guān)Python下載保存網(wǎng)絡(luò)圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解
這篇文章主要介紹了Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05利用Python計算質(zhì)數(shù)與完全數(shù)的方法實例
這篇文章主要介紹了利用Python計算質(zhì)數(shù)與完全數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python神經(jīng)網(wǎng)絡(luò)TensorFlow簡介常用基本操作教程
這篇文章主要介紹了python神經(jīng)網(wǎng)絡(luò)入門TensorFlow簡介常用基本操作教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11python 判斷l(xiāng)inux進程,并殺死進程的實現(xiàn)方法
今天小編就為大家分享一篇python 判斷l(xiāng)inux進程,并殺死進程的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python基于hashlib模塊的文件MD5一致性加密驗證示例
這篇文章主要介紹了Python基于hashlib模塊的文件MD5一致性加密驗證,涉及Python使用hashlib模塊進行字符串與文件的MD5加密驗證操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-02-02python中matplotlib條件背景顏色的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于python中matplotlib條件背景顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09