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

Python遍历目录添加图片到PPT遇FileNotFoundError求解

解决思路

1. 核心问题:路径格式错误

你代码里写的/dataset/"+i+"/Image_1.png是绝对路径(开头的/指向系统根目录),但你的dataset文件夹实际在当前工作目录下,应该用相对路径才能正确定位。

快速修复:

去掉路径开头的/,改成相对路径写法:

base = f"dataset/{i}/Image_1.png"

2. 更可靠的路径拼接(推荐)

手动拼接路径容易出错,建议用os.path.join自动适配不同系统的路径分隔符(Windows用\,Linux/macOS用/),同时记得先导入os模块:

import os
# ...其他代码...
base = os.path.join("dataset", i, "Image_1.png")

3. 调试技巧:验证路径有效性

可以在添加图片前先检查路径是否存在,方便快速排查问题:

if os.path.exists(base):
    pic = slide.shapes.add_picture(base, left, top)
else:
    print(f"文件不存在:{base}")

4. 额外优化:避免图片重叠

你当前所有图片都添加到同一张幻灯片上,会导致图片堆叠覆盖。如果需要每张图片单独占一张幻灯片,把创建幻灯片的代码放到循环内部:

for i in os.listdir("dataset"):
    if i == ".DS_Store":
        print("Not applicable")
        continue
    # 每次循环新建一张空白幻灯片
    slide = prs.slides.add_slide(blank_slide_layout)
    base = os.path.join("dataset", i, "Image_1.png")
    print(base)
    left = top = Inches(1)
    if os.path.exists(base):
        pic = slide.shapes.add_picture(base, left, top)
    else:
        print(f"跳过不存在的文件:{base}")

完整修正后的代码示例

from pptx import Presentation
from pptx.util import Inches
import os

prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]

for i in os.listdir("dataset"):
    if i == ".DS_Store":
        print("Not applicable")
        continue
    slide = prs.slides.add_slide(blank_slide_layout)
    base = os.path.join("dataset", i, "Image_1.png")
    print(base)
    left = top = Inches(1)
    if os.path.exists(base):
        pic = slide.shapes.add_picture(base, left, top)
    else:
        print(f"文件未找到:{base}")

prs.save('test.pptx')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:22:18