Python嵌套字典列表中文件路径触发UnicodeEscape语法错误求助
解决Python路径字符串的UnicodeEscape语法错误
错误原因
你写的路径里用了单个反斜杠\,在Python字符串中\是转义字符。比如\Uncommon里的\U会被识别为Unicode转义序列的开头(要求后面跟8位十六进制数),但你这里后面是字母,所以触发截断错误。
三种修复方案
方案1:用双反斜杠代替单个反斜杠
把路径里的\换成\\,让Python把它当成普通的反斜杠字符:Bases = [ { "BC0": ["Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_base.PNG", "Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_bonus1.PNG", "Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_bonus2.PNG", "Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_accent.PNG", "Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_shadows.PNG", "Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_eyesbeakfeet.PNG", "Owl_project_pictures\\Common\\Great Grey Owl\\_greatgrey_lines.PNG"], "BC1": ["Owl_project_pictures\\Common\\Barn Owl\\_barn_base.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_bonus1.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_bonus2.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_bonus2.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_accent.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_shadows.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_eyesbeakfeet.PNG", "Owl_project_pictures\\Common\\Barn Owl\\_barn_lines.PNG"], "BC2": ["Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_base.PNG","Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_bonus1.PNG", "Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_bonus2.PNG", "Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_accent.PNG", "Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_shadows.PNG", "Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_eyesbeakfeet.PNG", "Owl_project_pictures\\Common\\Burrowing Owl\\_burrowing_lines.PNG"] }, { "BU0": ["Owl_project_pictures\\Uncommon\\Crested Owl\\_crested_base.PNG", "Owl_project_pictures\\Uncommon\\Crested Owl\\_crested_bonus1.PNG"] } ]方案2:使用原始字符串
在字符串前面加r,告诉Python不要解析转义字符:Bases = [ { "BC0": [r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_base.PNG", r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_bonus1.PNG", r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_bonus2.PNG", r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_accent.PNG", r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_shadows.PNG", r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_eyesbeakfeet.PNG", r"Owl_project_pictures\Common\Great Grey Owl\_greatgrey_lines.PNG"], "BC1": [r"Owl_project_pictures\Common\Barn Owl\_barn_base.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_bonus1.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_bonus2.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_bonus2.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_accent.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_shadows.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_eyesbeakfeet.PNG", r"Owl_project_pictures\Common\Barn Owl\_barn_lines.PNG"], "BC2": [r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_base.PNG",r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_bonus1.PNG", r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_bonus2.PNG", r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_accent.PNG", r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_shadows.PNG", r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_eyesbeakfeet.PNG", r"Owl_project_pictures\Common\Burrowing Owl\_burrowing_lines.PNG"] }, { "BU0": [r"Owl_project_pictures\Uncommon\Crested Owl\_crested_base.PNG", r"Owl_project_pictures\Uncommon\Crested Owl\_crested_bonus1.PNG"] } ]方案3:用正斜杠代替反斜杠
Python支持用正斜杠作为路径分隔符,直接替换所有\为/:Bases = [ { "BC0": ["Owl_project_pictures/Common/Great Grey Owl/_greatgrey_base.PNG", "Owl_project_pictures/Common/Great Grey Owl/_greatgrey_bonus1.PNG", "Owl_project_pictures/Common/Great Grey Owl/_greatgrey_bonus2.PNG", "Owl_project_pictures/Common/Great Grey Owl/_greatgrey_accent.PNG", "Owl_project_pictures/Common/Great Grey Owl/_greatgrey_shadows.PNG", "Owl_project_pictures/Common/Great Grey Owl/_greatgrey_eyesbeakfeet.PNG", "Owl_project_pictures/Common/Great Grey Owl/_greatgrey_lines.PNG"], "BC1": ["Owl_project_pictures/Common/Barn Owl/_barn_base.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_bonus1.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_bonus2.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_bonus2.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_accent.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_shadows.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_eyesbeakfeet.PNG", "Owl_project_pictures/Common/Barn Owl/_barn_lines.PNG"], "BC2": ["Owl_project_pictures/Common/Burrowing Owl/_burrowing_base.PNG","Owl_project_pictures/Common/Burrowing Owl/_burrowing_bonus1.PNG", "Owl_project_pictures/Common/Burrowing Owl/_burrowing_bonus2.PNG", "Owl_project_pictures/Common/Burrowing Owl/_burrowing_accent.PNG", "Owl_project_pictures/Common/Burrowing Owl/_burrowing_shadows.PNG", "Owl_project_pictures/Common/Burrowing Owl/_burrowing_eyesbeakfeet.PNG", "Owl_project_pictures/Common/Burrowing Owl/_burrowing_lines.PNG"] }, { "BU0": ["Owl_project_pictures/Uncommon/Crested Owl/_crested_base.PNG", "Owl_project_pictures/Uncommon/Crested Owl/_crested_bonus1.PNG"] } ]
额外提醒
其实你前面的BC0、BC1、BC2路径也有同样的隐患,只是刚好没有触发转义错误(比如\Common的\C不是特殊转义序列),但最好统一修复,避免后续出问题。
内容的提问来源于stack exchange,提问作者Jimmy Seifert
相关产品推荐
相关产品推荐

