shutil.copy明明存在的文件却报错:FileNotFoundError(2, ‘No such file or directory‘)(关于长度的探讨)

使用copy将某相对路径的文件复制到另一个路径时,有一个文件始终复制不成功。于是使用

try:
    copy(imgURL, desURL_T) # imgURL复制源相对路径,desURL_T目标路径
except Exception as e:
    print(imgURL + '复制失败:' + repr(e))

捕获异常报错:FileNotFoundError(2, ‘No such file or directory’)
但是这个文件明明就存在啊!!!
这是报错的图片地址imgURL

imgURL = '..\\view_tool_service\\img\\face\\%e5%87%ba%e6%b2%b9%e3%80%81%e5%86%92%e7%97%98%e3%80%81%e6%af%9b%e5%ad%94%e5%a4%a7%ef%bc%9f%e4%b8%80%e5%9c%96%e5%88%86%e8%be%a85%e7%a8%ae%e8%86%9a%e8%b3%aa%e5%b0%8d%e7%97%87%e4%b8%8b%e8%97%a5-1.jpg'

探索错误过程:
1.使用python打开文件命令os.startfile(imgURL),可以正常打开。
痘痘
2.使用绝对路径copy,成功!😶

imgURL = 'd:\\APP\\wamp64\\www\\view_tool_service\\img\\face\\%e5%87%ba%e6%b2%b9%e3%80%81%e5%86%92%e7%97%98%e3%80%81%e6%af%9b%e5%ad%94%e5%a4%a7%ef%bc%9f%e4%b8%80%e5%9c%96%e5%88%86%e8%be%a85%e7%a8%ae%e8%86%9a%e8%b3%aa%e5%b0%8d%e7%97%87%e4%b8%8b%e8%97%a5-1.jpg'

3.但我还是很纳闷,其他的六百多张图片用相对路径都复制成功了,怎么这张就不行?!他有什么秘密呢🤔
4.继续,那我将相对路径转为绝对路径就可以了咯,但我不是直接用绝对路径,是用下面的代码进行了转换:(我的图片地址是由服务器地址baseURL 加图片的地址URL组成imgURL的)

baseURL = "..\\view_tool_service\\" # 服务器相对地址
baseURL = os.path.dirname(__file__)+'\\' + baseURL 

这样得到的绝对地址实际上长这样:

imgURL = 'd:\\APP\\wamp64\\www\\view_tool_client\\..\\view_tool_service\\img\\face\\%e5%87%ba%e6%b2%b9%e3%80%81%e5%86%92%e7%97%98%e3%80%81%e6%af%9b%e5%ad%94%e5%a4%a7%ef%bc%9f%e4%b8%80%e5%9c%96%e5%88%86%e8%be%a85%e7%a8%ae%e8%86%9a%e8%b3%aa%e5%b0%8d%e7%97%87%e4%b8%8b%e8%97%a5-1.jpg'

运行,居然!还是报错,在这张图片上。
5.这不都变成绝对地址了吗,你还要怎样?
6.🤔比较绝对地址和绝对地址,emmm,难道是因为太长长长了?不就是多了\view_tool_client\…这么点吗?
7.于是乎,我尝试修改图片名称的长度,先把最后面的’-1’去掉!
还真可以了,相对路径也可以了!你终于可以了!那就是长度的问题哎😅

遗留:
1.对相对路径存在疑惑,它的最大长度不如绝对路径的吗?
2.他们的最大长度限制分别是多少呢?好像不是光用len(imgURL)去判断那么简单,因为同一个路径相对路径明显要比绝对路径短嘛。

时间有限,这个疑问就留到以后慢慢探索吧!
如果您有不同的看法,请给我评论吧!

结论:
在使用shutil.copy复制文件时,使用绝对路径代表源文件地址可以有更长的长度!然后尽量不要用太长的命名方式,会吃不消。

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土Bo鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值