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

Python调用pyautogui截图保存时报错FileNotFoundError问题求助

报错原因

  • 潜在问题:代码中调用了os.getcwd()但未导入os模块,会触发名称未定义错误
  • 核心原因:/home/user/IXL-Bot/Data/Screenshots/目录不存在,PIL的save方法不会自动创建不存在的父级目录,因此打开文件时触发路径不存在报错
  • 隐藏隐患:手动用+拼接带斜杠的路径写法不兼容不同操作系统的路径规则,容易出现适配问题

解决方法

修正后的完整代码

import pyautogui as pygui
import os

def take_screenshot():
    ss = pygui.screenshot()
    # 获取当前工作目录
    work_dir = os.getcwd()
    # 系统自适应拼接目标保存目录
    save_dir = os.path.join(work_dir, "Data", "Screenshots")
    # 递归创建目录,已存在时不报错
    os.makedirs(save_dir, exist_ok=True)
    # 拼接完整保存路径
    save_path = os.path.join(save_dir, "Screenshot.png")
    ss.save(save_path)

修改说明

  • 补充了os模块导入,解决名称未定义问题
  • 用os.path.join拼接路径,自动适配不同操作系统的路径格式
  • 新增os.makedirs自动创建目标目录,exist_ok=True参数避免目录已存在时触发重复创建错误

Python 3.4+ 可选简化写法(用pathlib处理路径更简洁)

import pyautogui as pygui
from pathlib import Path

def take_screenshot():
    ss = pygui.screenshot()
    save_path = Path.cwd() / "Data" / "Screenshots" / "Screenshot.png"
    # 自动创建父目录
    save_path.parent.mkdir(parents=True, exist_ok=True)
    ss.save(save_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:54:02