[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 文獻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM