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

Python下载图片时长路径触发FileNotFoundError错误如何解决?

问题原因

你遇到的是Windows系统默认的MAX_PATH路径长度限制问题:Windows传统Win32 API对文件路径的默认长度限制为260个字符(包含盘符、分隔符、结尾空字符等)。
你拼接出的完整文件路径是:
C:/Users/Dave/Desktop/Coolname/apple-banana-carrot-dog-electric-fish-gorilla-horse-igloo-jackrabbit-kangaroo-long-maze-nickel-octopus-pretty/apple-banana-carrot-dog-electric-fish-gorilla-horse-igloo-jackrabbit-kangaroo-long-maze-nickel-octopus-pretty.-1.jpg
总字符数已经超过260的限制,系统无法识别超长路径,因此抛出FileNotFoundError。当你缩短文件夹名后,总路径长度低于260阈值,即可正常运行。

解决方案

可任选以下任意一种方法解决:

  • 方法1:开启Windows系统长路径支持(适用于Win10 1607及以上版本)
    1. 按下Win+R输入regedit打开注册表编辑器
    2. 定位到路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    3. 找到LongPathsEnabled项,将值修改为1,重启电脑后生效。Python 3.6及以上版本默认适配系统长路径配置,无需额外修改代码。
  • 方法2:添加Windows扩展路径前缀(无需修改系统配置,即时生效)
    在拼接绝对路径时,在最前面添加\\?\前缀,告诉Windows API忽略260字符限制,修改main.py的路径拼接代码为:
    location = r"\\?\C:/Users/Dave/Desktop/" + model_name + "/" + album_name + "/"
    
    注意该方案仅支持绝对路径,不能包含.、..这类相对路径标识。
  • 方法3:缩短路径存储名(兼容性最好,全版本Windows通用)
    对超长的album_name做哈希映射,比如取MD5值的前12位作为文件夹名,同时在同级目录下新建info.txt存储原长名称做对应,可大幅降低路径长度,避免触达长度限制。

另外建议修改downloader.py中创建文件夹的代码,添加exist_ok=True参数避免文件夹已存在时抛出异常:

os.makedirs(dest_folder, exist_ok=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:48:03