You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将爬取的图片保存到当前工作目录以外的指定文件夹?

解决图片保存到当前目录外文件夹的问题

嘿,我来帮你搞定这个路径问题!你之前用../没成功,大概率是因为脚本运行时的工作目录和脚本实际所在目录不一致,或者目标文件夹没提前创建导致的。下面给你两种可靠的实现方法:

方法1:基于脚本位置的绝对路径(推荐)

这种方法不管你在哪里运行脚本,路径都不会出错,非常稳定。步骤如下:

  1. 导入os模块处理路径和文件夹操作
  2. 获取脚本本身所在的目录,以此为基准构造目标路径
  3. 确保目标文件夹存在(不存在就自动创建)
  4. 拼接完整的图片保存路径

修改后的代码示例:

import os
import base64
from selenium import webdriver  # 按需保留,如果你用了selenium

# ... 你的爬取逻辑代码 ...
base64_image_away = driver.execute_script(
    "return document.querySelector('.canvas-container[data-field=away] canvas').toDataURL('image/png').substring(21);"
)
output_image_away = base64.b64decode(base64_image_away)

# 获取当前脚本(players_data.py)所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))

# 示例:把图片保存到**上级目录**的`external_heatmaps`文件夹里
# 你可以按需修改路径,比如想存到D盘就写"D:/saved_images"
target_folder = os.path.join(script_dir, '..', 'external_heatmaps')

# 自动创建目标文件夹,已存在则跳过(避免报错)
os.makedirs(target_folder, exist_ok=True)

# 拼接完整的图片保存路径
image_save_path = os.path.join(target_folder, f"image_{away_team}.png")

# 写入图片文件
with open(image_save_path, 'wb') as f:
    f.write(output_image_away)

方法2:确保工作目录正确的相对路径

如果你确定运行脚本时的工作目录就是players_data.py所在的目录(比如在该目录下直接运行python players_data.py),可以直接用相对路径,但要先确认目标文件夹存在:

import os
import base64

# ... 爬取逻辑代码 ...
output_image_away = base64.b64decode(base64_image_away)

# 示例:保存到上级目录的images文件夹
target_folder = "../images"
os.makedirs(target_folder, exist_ok=True)

with open(f"{target_folder}/image_{away_team}.png", 'wb') as f:
    f.write(output_image_away)

为什么之前的../没成功?

最常见的原因是:你在非脚本所在目录运行了脚本。比如你在桌面目录运行python Documents/players_data.py,此时当前工作目录是桌面,../指向的是桌面的上级目录,而非脚本所在的Documents目录的上级,自然找不到目标路径。

所以更推荐第一种基于脚本绝对路径的方法,彻底避开工作目录的坑!

内容的提问来源于stack exchange,提问作者vftw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:08:56