• Python_报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated UXXXXXXXX escape


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

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

    上代码:

    >>> def func1(path_name):
    ...     import os
    ...     if os.path.exists(path_name):
    ...         return "True"
    ...     else:
    ...         return "False"
    ...
    >>> func1("C:Users
    enyc")#会报错
      File "<stdin>", line 1
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated UXXXXXXXX escape
    >>>
    本例中:"C:Users
    enyc"经过转义之后就找不到路径的资源了。

    解决方法:

    >>> def func1(path_name):
    ...     import os
    ...     if os.path.exists(path_name):
    ...         return "True"
    ...     else:
    ...         return "False"
    ...
    >>> func1(r"C:Users
    enyc")#加上r,声明字符串,不用转义处理
    'True'
    >>> func1("C:\Users\renyc")#绝对路径的处理
    'True'
    >>>

    总结有三种方法:

    一:更换为绝对路径的写法
    func1("C:\Users\renyc")

    二:显式声明字符串不用转义(加r)
    func1(r"C:Users enyc")

    三:使用Linux的路径/
    func1("C:/Users/renyc")



  • 相关阅读:
    7.15--7.19学习小结
    关于CStdioFile的使用问题
    【EOJ Monthly 2018.7】【D数蝌蚪】
    【HDOJ1051】【排序+LIS】【贪心】
    【HDOJ1045】【DFS】
    【递推】【HDOJ】
    【带权并查集】【HDOJ】
    【次小生成树】【Kruskal】【prim】【转】
    【HDOJ4857】【反向拓扑排序】
    【HDOJ1069】【动态规划】
  • 原文地址:https://www.cnblogs.com/rychh/p/9743864.html
Copyright © 2020-2023  润新知