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

Pyautogui.screenshot()函数无法正常工作,截图未保存

解决pyautogui截图无法保存带数字后缀文件的问题

核心问题排查与解决步骤

  • 先确保目标目录存在:pyautogui不会自动创建不存在的文件夹,没建目录的话截图根本存不进去。先写代码自动创建:

    import os
    
    # 定义截图保存目录
    save_dir = "Screenshots"
    # 目录不存在则创建,exist_ok=True避免重复创建报错
    os.makedirs(save_dir, exist_ok=True)
    
  • 正确实现带数字后缀的命名逻辑:统计目录里已有的截图数量,找到最大的数字后缀,生成下一个文件名:

    import glob
    
    # 搜索目录里所有screenshot_*.png文件
    existing_files = glob.glob(os.path.join(save_dir, "screenshot_*.png"))
    # 提取数字后缀并找到最大值
    max_num = 0
    for file in existing_files:
        # 从文件名中提取数字部分,比如screenshot_3.png -> 3
        num = int(os.path.splitext(os.path.basename(file))[0].split("_")[1])
        if num > max_num:
            max_num = num
    # 生成新的文件名
    new_filename = os.path.join(save_dir, f"screenshot_{max_num + 1}.png")
    
  • 正确调用截图保存方法:两种写法任选其一:
    写法一:先截图再保存

    import pyautogui
    
    # 截取全屏
    screenshot = pyautogui.screenshot()
    # 保存到指定路径
    screenshot.save(new_filename)
    

    写法二:直接在screenshot()里指定文件名

    pyautogui.screenshot(new_filename)
    

完整可运行代码

新手直接复制就能用:

import os
import glob
import pyautogui

# 定义保存目录
save_dir = "Screenshots"
os.makedirs(save_dir, exist_ok=True)

# 统计现有截图的最大数字后缀
existing_files = glob.glob(os.path.join(save_dir, "screenshot_*.png"))
max_num = 0
for file in existing_files:
    try:
        num = int(os.path.splitext(os.path.basename(file))[0].split("_")[1])
        if num > max_num:
            max_num = num
    except (IndexError, ValueError):
        # 遇到不符合命名规则的文件跳过
        continue

# 生成新文件名并截图保存
new_filename = os.path.join(save_dir, f"screenshot_{max_num + 1}.png")
pyautogui.screenshot(new_filename)

print(f"截图已保存到:{new_filename}")

常见错误排查

  • 之前的代码可能没创建目录:直接指定Screenshots/screenshot_1.png时,目录不存在会导致保存失败,且无提示(PIL默认行为)。
  • 文件名路径写错:用相对路径但当前工作目录不对,os.path.join能避免路径拼接的问题。
  • 没正确调用保存方法:只写pyautogui.screenshot()而没赋值或指定filename,截图只会留在内存里,不会存到硬盘。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:03:16