python :python中SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3

这个问题是在读取图片地址发生的错误,以前读取从来没有这种报错,结果蒙了。

想研究一下os.path.join的合成路径的,结果试着试着出现了个错误,一脸懵逼…,进入正题

>>> print(os.path.join('data','train'))	       
data\train

>>> print(os.path.join('C:\data','train','demo','MOT'))	       
C:\data\train\demo\MOT

都很美妙~~
but....
>>> path = (os.path.join('C:\Users\HP','Desktop'))	       
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

我怀疑是他看我的桌面不顺眼,又换了个盘

>>> print(os.path.join('D:\Image','train','demo','MOT'))	       
D:\Image\train\demo\MOT
有很美妙了~~

突然一拍脑袋想到,之前写的时候都变了路径的反斜杠,于是乎
>>> print(os.path.join('C:/Users','train','demo','MOT'))		       
C:/Users\train\demo\MOT
美妙起来了

所以问题就是:’\’ 的问题,这是会被当做是转义字符,就好比 ‘\n’, \t之类的,而不会把他认为是反斜杠,所以只要把他转移一下 有反斜杠的意思就行了。

解决办法:

1. 可以改变反斜杠的方向,如上面所示。
 'C:\USERS'--->'C:/USERS'
2. 可以加两个反斜杠 ,比如
'C:\USERS'--->'C:\\USERS'
3.显式声明字符串不用转义
'C:\USERS'--->r'C:\USERS'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值