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

遍历目录图片并切片时遭遇FileNotFoundError问题求助

排查文件存在却触发FileNotFoundError的常见原因

嘿,这种“明明文件就在目录里,程序却说找不到”的问题真的很挠头,我来帮你捋捋最可能的几个原因:

  • 当前工作目录与图片目录不匹配
    很多时候是因为你只获取了文件名(比如用os.listdir()拿到'45678.png'),但直接用这个文件名打开时,脚本的当前工作目录并不是图片所在的目录。解决方法很简单:用os.path.join()把目录路径和文件名拼接成完整路径,比如:

    import os
    img_dir = "/path/to/your/images"
    for filename in os.listdir(img_dir):
        full_path = os.path.join(img_dir, filename)
        if os.path.isfile(full_path):
            # 在这里处理图片切片
            with open(full_path, 'rb') as f:
                # 你的切片逻辑
                pass
    
  • 文件名包含隐藏特殊字符
    有时候文件名看起来是45678.png,但实际可能藏着空格、制表符,或者全角/半角字符混淆(比如把英文.写成了中文。)。你可以在代码里打印文件名的原始表示来排查:

    print(repr(filename))  # 会显示出所有隐藏字符,比如'45678.png\n'或者'45678.png'
    

    也可以在终端里用ls -l(Linux/macOS)或dir /x(Windows)查看文件的真实名称。

  • 文件权限或临时占用问题
    虽然报错是“找不到文件”,但极少数情况下,脚本没有该文件的读取权限,或者文件正被其他程序占用/临时锁定,也会触发类似错误。你可以手动检查文件的读写权限,或者暂时关闭其他可能访问该文件的程序再试。

  • 遍历过程中文件被意外修改
    如果遍历目录的同时,有其他工具(比如同步软件、文件清理工具)修改或删除了这个文件,也会出现这种情况。不过这种概率比较低,可以暂时排除。

对了,要是能把你的完整代码贴出来,我能更精准地定位到具体问题哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:35:46