社区上个月审查了是否重新打开此问题并将其关闭:
原始关闭原因未解决
我在 Windows 7 机器上使用 Python 3.1。俄语是默认系统语言,utf-8 是默认编码。
查看上一个问题的答案,我尝试使用“编解码器”模块给我一点运气。这里有几个例子:
>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1) >>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1) >>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1) >>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#44>, line 1)
我的最后一个想法是,我认为这可能是因为 Windows 将一些文件夹(例如“users”文件夹)“翻译”成俄语(尽管输入“users”仍然是正确的路径),所以我试了一下Python31 文件夹。尽管如此,还是没有运气。有任何想法吗?
问题出在字符串上
"C:\Users\Eric\Desktop\beeline.txt"
在这里,\Uin "C:\Users… 开始一个八字符的 Unicode 转义,例如\U00014321. 在您的代码中,转义符后跟字符“s”,这是无效的。
\U
"C:\Users
\U00014321
您要么需要复制所有反斜杠:
"C:\\Users\\Eric\\Desktop\\beeline.txt"
或在字符串前面加上r(以生成原始字符串):
r
r"C:\Users\Eric\Desktop\beeline.txt"