[Python]编译错误:编码错误问题(SyntaxError: (unicode error) )

1 错误信息

python文件

1 #coding:utf-8
2
3 class Clz:
4    def func(filePath):
5    """
6    func
7    -----
8    :param filePath :  like -> D:\xx\yy\zz.txt
9    """
File "E:/workspace/PyDemo20190618/../Clz.py", line 9
            """
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 669-670: truncated \xXX escape

2 分析原因

  1. 文件自身编码文件首行声明的编码不一致。

  2. 函数下方的注释区或者文件其它区域(""" ...""") 存在对【含斜下划线,即 转义字符)】的描述,导致python编译器编译时出错。【此点,较为难发现、排除,亦系撰写本博客的本质原因】

【深层次原因(不完全确定)】在Python中 \ 是转义符,\u表示其后是UNICODE编码,在编译阶段,python编译器与正则表达式语法发生冲突。因此,在第9行会报错。

解决办法1:单斜下划线(转义字符)【\】换为双斜下划线【\\】

解决办法2:在字符串前面加个【r】符(rawstring 原生字符串)

以此避免python与正则表达式语法的冲突。

3 文献

posted @ 2019-07-28 13:39  千千寰宇  阅读(2687)  评论(0编辑  收藏  举报