首页 > 解决方案 > DISCORD // 'unicodeescape' 编解码器无法解码位置 2-3 中的字节:截断 \UXXXXXXXX 转义

问题描述

我正在尝试使用此脚本打开不和谐

import subprocess

subprocess.call(['C:\Users\xerxe\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Discord Inc\\Discord.exe'])

但只得到这个这个错误

'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

标签: python

解决方案


\字符是转义字符 -\n表示换行符、\t制表符等\U,用于表示 Unicode 转义序列的开头,例如\U000145d3,其中后面的 8 个字符\U是十六进制数字 ( 0-9a-f)。由于\Users\xer不是有效的 Unicode 转义序列,因此出现错误。对于 Windows 路径,您需要转义转义字符:

subprocess.call(['C:\\Users\\xerxe\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Discord Inc\\Discord.exe'])

使用原始字符串文字(注意r就在开头之前'):

subprocess.call([r'C:\Users\xerxe\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Discord Inc\Discord.exe'])

或使用/字符作为路径分隔符:

subprocess.call(['C:/Users/xerxe/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Discord Inc/Discord.exe'])

推荐阅读