路径名太长,尝试在 Python 中使用 OpenCV 或 PIL.Image 保存图像时出错

Posted

技术标签:

【中文标题】路径名太长,尝试在 Python 中使用 OpenCV 或 PIL.Image 保存图像时出错【英文标题】:Path name too long, error when trying to save image with OpenCV or PIL.Image in Python 【发布时间】:2020-02-06 08:17:52 【问题描述】:

我正在尝试将图像另存为:

img_path = folder_path + "\\image1.png" 

folder_path 存在,正如我之前检查过的那样:

if(not os.path.exists(folder_path)):
    raise OSError("Directory does not exist") #doesn't raise error

我已经尝试过使用 OpenCV

cv2.imwrite(img_path, img)

但它不会像我那样创建图像

if(not os.path.exists(img_path)):
    raise OSError("Image not saved correctly.") #raises error

它会引发错误,当查看文件夹时,图像不存在。 我也试过 PIL.Image

img.save(img_path) 

这会产生 FileNotFoundError。

我认为问题在于文件夹路径太长(它有 279 个字符),因为当我尝试将图像保存到另一个文件夹时,它会正确保存它。我认为没有权限问题。有没有办法为操作系统创建某种“快捷方式”,路径名称可能更短?将图像保存在该路径很重要。

【问题讨论】:

如果确实是文件夹路径长度问题,您可以尝试从您的 python 脚本中提供相对路径(如果这样可以缩短)。 os有这个路径长度限制,中途缩短文件名和文件夹名,或者保存到D:\tmp,从那里移走。 【参考方案1】:

我发现,用os.chdir(folder_path)更改工作目录,然后将图像保存为cv2.imwrite("image1.png")

【讨论】:

以上是关于路径名太长,尝试在 Python 中使用 OpenCV 或 PIL.Image 保存图像时出错的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Python 在 Windows 上找到具有长名称的文件

Windows 错误:源路径太长

windows路径太长无法删除

Windows中删除路径太长目录及文件

node npm windows 文件路径太长无法安装包

python open 文件路径使用变量