如何使用requests库将图片下载到指定文件夹?
实现图片保存到指定文件夹的方法
要把图片保存到指定文件夹,核心是将文件夹路径与文件名正确拼接,同时要处理文件夹不存在的情况,避免报错。以下是具体实现方案:
方案1:指定已有文件夹(提前创建好文件夹)
如果目标文件夹已经存在,直接用os.path.join()拼接路径即可,这个方法能自动适配不同操作系统的路径分隔符(Windows用\,Linux/macOS用/)。
修改后的代码:
import requests import os urldwl = "" # 后续定义图片URL filename = "" # 后续定义文件名 folder_path = "./saved_images" # 指定目标文件夹 def downloadimg(): img_data = requests.get(urldwl).content # 拼接完整文件路径 full_path = os.path.join(folder_path, f"{filename}.jpg") with open(full_path, 'wb') as handler: handler.write(img_data)
方案2:自动创建目标文件夹(推荐)
如果不确定文件夹是否存在,可以在保存前自动创建文件夹(已存在则不会重复创建),避免因文件夹不存在导致的FileNotFoundError。
修改后的代码:
import requests import os urldwl = "" filename = "" folder_path = "./saved_images" def downloadimg(): # 自动创建文件夹,exist_ok=True表示文件夹已存在时不报错 os.makedirs(folder_path, exist_ok=True) img_data = requests.get(urldwl).content full_path = os.path.join(folder_path, f"{filename}.jpg") with open(full_path, 'wb') as handler: handler.write(img_data)
更灵活的写法:将路径作为函数参数
如果需要动态指定不同文件夹,可以把folder_path、urldwl、filename作为函数参数传入,提升代码复用性:
import requests import os def downloadimg(urldwl, filename, folder_path="./saved_images"): os.makedirs(folder_path, exist_ok=True) full_path = os.path.join(folder_path, f"{filename}.jpg") img_data = requests.get(urldwl).content with open(full_path, 'wb') as handler: handler.write(img_data) # 调用示例 # downloadimg("https://example.com/image.jpg", "my_image", "./my_images")
内容的提问来源于stack exchange,提问作者user25653727
相关产品推荐
相关产品推荐

