Python运行gTTS文本转语音代码出现unicodeescape解码错误如何解决
报错原因
这个报错是Python字符串转义规则导致的:Windows系统的文件路径用反斜杠\作为分隔符,但Python字符串里\是转义字符,你路径里的C:\Users中的\U会被Python识别为Unicode编码的开头,不符合Unicode编码规则就抛出了这个错误。
解决方法
任选以下任意一种方案修改路径部分的代码即可:
- 方案1:把路径里的单反斜杠全部换成双反斜杠
\\,双反斜杠会被Python转义为普通的反斜杠
示例代码:subprocess.call(["vlc","C:\\Users\\Alexp\\rasatest\\actions\\welcome.mp3","--play-and-exit"]) - 方案2:在路径字符串的引号前加小写的
r,声明这是原始字符串,Python不会对里面的转义字符做处理
示例代码:subprocess.call(["vlc",r"C:\Users\Alexp\rasatest\actions\welcome.mp3","--play-and-exit"]) - 方案3:把路径里的反斜杠全部换成正斜杠
/,Python在Windows系统下也能正常识别正斜杠格式的路径
示例代码:subprocess.call(["vlc","C:/Users/Alexp/rasatest/actions/welcome.mp3","--play-and-exit"])
额外说明
你最开始从教程复制的代码里用的是相对路径"welcome.mp3",不会触发这个问题,只有修改为Windows绝对路径之后才会出现该报错,调整完路径格式就能正常运行。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

