解决Python报错:SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position...

Python运行后,报错:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

原因:window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,经过转义之后可能就找不到路径的资源了,例如\t会转义为tab键

def func1(path_name):
     import os
     if os.path.exists(path_name):
         return "True"
     else:
         return "False"

>>>func1("C:\Users\renyc")#会报错
  File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
>>>

本例中:"C:\Users\renyc"经过转义之后就找不到路径的资源了。
解决方法:

def func1(path_name):
     import os
     if os.path.exists(path_name):
         return "True"
     else:
         return "False"

>>> func1(r"C:\Users\renyc")#加上r,声明字符串,不用转义处理
'True'
>>> func1("C:\\Users\\renyc")#绝对路径的处理
'True'

总结有三种方法:

  1. 更换为绝对路径的写法:func1(“C:\Users\renyc”)
  2. 显式声明字符串不用转义(加r):func1(r"C:\Users\renyc")
  3. 使用Linux的路径:/func1(“C:/Users/renyc”)
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值