这个问题是在读取图片地址发生的错误,以前读取从来没有这种报错,结果蒙了。
想研究一下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'