加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Python中'unicodeescape'codeccan'tdecodebytesinposition2-3:truncated\UXXXXXXXXescape

(2018-07-13 11:02:35)
标签:

python

分类: Python
在Python中引用文件路径时报错:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

所运行代码如下:
with open('C:\Users\taylor.s\Desktop\helloworld.txt') as file_object:
    contents = file_object.read()
    print(contents.rstrip())

在字母‘U’前再加一个反斜杠后报错:OSError: [Errno 22] Invalid argument: ‘文件路径’

在字母't'前再加一个反斜杠后运行成功:
with open('C:\\Users\\taylor.s\Desktop\helloworld.txt') as file_object:
    contents = file_object.read()
    print(contents.rstrip())

原因:

window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,所以’d:\a.txt’会被转义成’d:\a.txt’这是正确路径,所以不会报错。而‘C:\Users\taylor.s\Desktop\helloworld.txt’中经过转义之后可能就找不到路径的资源了,例如\t可能就转义成tab键了,而’\u‘开头就基本表明是跟unicode编码相关的,“\u”后的16进制字符串是相应汉字的utf-16编码。

解决办法

python在描述路径时可以有多种方式,现列举常见的三种


方式一:转义的方式

'd:\\a.txt'

方式二:显式声明字符串不用转义

'd:r\a.txt'

方式三:使用Linux的路径/

'd:/a.txt'

我强烈推荐第三种写法,这在Linux和window下都是行的通的。


参考资料:https://blog.csdn.net/u011242657/article/details/64437612

https://blog.csdn.net/qq_33363973/article/details/77862007

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有