Python中'unicodeescape'codeccan'tdecodebytesinposition2-3:truncated\UXXXXXXXXescape
(2018-07-13 11:02:35)
标签:
python |
分类: Python |
在Python中引用文件路径时报错:
contents =
file_object.read()
print(contents.rstrip())
SyntaxError: (unicode
error)
'unicodeescape' codec can't decode bytes in position 2-3: truncated
\UXXXXXXXX escape
contents =
file_object.read()
print(contents.rstrip())
所运行代码如下:
with open('C:\Users\taylor.s\Desktop\helloworld.txt') as
file_object:
在字母‘U’前再加一个反斜杠后报错:OSError:
[Errno 22] Invalid argument: ‘文件路径’
在字母't'前再加一个反斜杠后运行成功:
with open('C:\\Users\\taylor.s\Desktop\helloworld.txt') as
file_object:
原因:
window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,所以’d:\a.txt’会被转义成’d:\a.txt’这是正确路径,所以不会报错。而‘C:\Users\taylor.s\Desktop\helloworld.txt’中经过转义之后可能就找不到路径的资源了,例如\t可能就转义成tab键了,而’\u‘开头就基本表明是跟unicode编码相关的,“\u”后的16进制字符串是相应汉字的utf-16编码。
解决办法
python在描述路径时可以有多种方式,现列举常见的三种
我强烈推荐第三种写法,这在Linux和window下都是行的通的。
参考资料:https://blog.csdn.net/u011242657/article/details/64437612