鱼C论坛

 找回密码
 立即注册
查看: 1894|回复: 6

请教下文件路径的问题,应该与编码有关。

[复制链接]
发表于 2022-5-13 15:50:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用pyexiv2库处理图片。
    def __init__(self, filename, encoding='utf-8'):
        """ Open an image and load its metadata. """
        self.img = exiv2api.Image(filename.encode(encoding))

它默认解码是utf-8。
按理来说应该韩文中文英文都可以。

但是我试过中文不能,能正常解析出文字。
但是在打开文件时会出问题。
 File "C:\Program Files\python\lib\site-packages\pyexiv2\core.py", line 15, in __init__
    self.img = exiv2api.Image(filename.encode(encoding))
RuntimeError: .\14 - [DJ] Spring Comes (啊啊) & Mozzi\1.jpg: Failed to open the data source: No such file or directory (errno = 2)

换成gbk可以正常运行。

刚刚遇见一个带韩文的文件夹。。。就跑不动了。改成utf-8也不行。
self.img = exiv2api.Image(filename.encode(encoding))
RuntimeError: .\14 - [DJ] Spring Comes (손손) & Mozzi\1.jpg: Failed to open the data source: No such file or directory (errno = 2)

网上都说这个错是路径有问题,没人提到过编码问题。

大蟒蛇们,这问题到底咋解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-13 15:54:39 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2022-5-13 15:57 编辑

说错了,可以有小括号  连词符  都可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-13 15:58:27 | 显示全部楼层
wp231957 发表于 2022-5-13 15:54
路径里不可以有连词符&

不是这个问题
 self.img = exiv2api.Image(filename.encode(encoding))
RuntimeError: .\14 - [DJ] Spring Comes (啊啊)Mozzi\1.jpg: Failed to open the data source: No such file or directory (errno = 2)

我把符号空格都删也没用
    self.img = exiv2api.Image(filename.encode(encoding))
RuntimeError: .\DJSpringComes啊啊Mozzi\1.jpg: Failed to open the data source: No such file or directory (errno = 2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-13 15:59:59 From FishC Mobile | 显示全部楼层
laogesix 发表于 2022-5-13 15:58
不是这个问题



提示就是找不到文件
.\DJSpringComes啊啊Mozzi\1.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-13 16:02:05 | 显示全部楼层
wp231957 发表于 2022-5-13 15:59
提示就是找不到文件
.\DJSpringComes啊啊Mozzi\1.jpg

这个路径存在的,使用gbk解码就可以运行,utf-8就不行 。但是目前遇见韩文就没办法用gbk了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-13 16:54:10 From FishC Mobile | 显示全部楼层
本帖最后由 hrpzcf 于 2022-5-13 17:09 编辑

pyexiv2更新到最新版?作者说过会修复这个问题,不知道修复了没有。
PS:路径编码问题不是你想的那样,不是utf8支持中文就可以用utf8。
在中文windows上默认的多字节编码是gbk,pyexiv2没有使用Python封装的方法打开文件,你指定encoding参数为utf8,pyexiv2就会将字符串编码为utf8传给系统api,系统api用gbk来解释收到的字符串就会出现乱码,就出现路径不存在的问题。如果pyexiv2使用Python封装的方法或者使用windows的宽字节版的api打开文件就不会出现这样的问题,因为Python封装的方法底层做了很多适应性工作。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-13 17:31:08 | 显示全部楼层
hrpzcf 发表于 2022-5-13 16:54
pyexiv2更新到最新版?作者说过会修复这个问题,不知道修复了没有。
PS:路径编码问题不是你想的那样,不 ...

是最新版的。
他上次更新是在两三个月前了
那么请问有没有其他包推荐呢?我就是拿来修改图片的元数据的,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 08:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表