[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:xxyyzz.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 文献

原文地址:https://www.cnblogs.com/johnnyzen/p/11258704.html