![](/img/trans.png)
[英]python SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape error
[英]SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
我在這里https://stackoverflow.com/a/35651859/6824121看到您可以像這樣在windows的終端中直接啟動 python 腳本:
> python -c exec("""import sys \nfor r in range(10): print('rob') """)
哪個工作得很好。
我試圖啟動這個命令:
> python -c exec("""test = r'C:\Users\alexa\Downloads\_internal'""")
我得到了錯誤:
File "<string>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: truncated \UXXXXXXXX escape
正如這個問題“Unicode Error“unicodeescape”codec can't decode bytes... Cannot open text files in Python 3
但是我使用了raw string
,所以我不知道為什么我仍然遇到錯誤。
我在這里錯過了什么?
我正在使用Python 3.6.8
,盡管我認為這與 python 的版本無關。
要使此代碼正常工作,您必須在字符串前加上字符r
作為前綴。 這是至關重要的,因為它將字符串轉換為原始字符串。 這是必需的,因為這會將反斜杠字符 ( /
) 視為文字字符。 這就是此代碼將起作用的原因:
> python -c exec(r"""test = r'C:\Users\alexa\Downloads\_internal'""")
這也是為什么在字符串內部也需要r
字符的原因,因為執行該代碼時出於相同目的需要它。
您也可以(盡管我不推薦這樣做)使用雙反斜杠,它轉義第一個反斜杠。 然而,這很難閱讀,並且很容易出錯。 例如:
> python -c exec("""test = r'C:\\Users\\alexa\Downloads\\_internal'""")
不過,最后我會推薦原始字符串。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.