为什么在文件路径中出现Unicode转义的SyntaxError?


105

我要访问的文件夹称为python,位于我的桌面上。

尝试获取以下错误

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

8
尝试s.chdir(r'C:\Users\expoperialed\Desktop\Python'); 阅读:docs.python.org/2/reference/...
NullUserException

Answers:


168

您需要使用原始字符串,将斜杠加倍或使用正斜杠:

r'C:\Users\expoperialed\Desktop\Python'
'C:\\Users\\expoperialed\\Desktop\\Python'
'C:/Users/expoperialed/Desktop/Python'

在常规python字符串中,\U字符组合表示扩展的Unicode代码点转义。

对于任何已识别的转义序列,例如\at\x,您可以遇到许多其他问题。


它没有帮助我:(
德米特里

1
@Dmitry您的评论对任何人都没有帮助。抱歉,答案没有帮助您解决问题,但是我将如何利用这些反馈来改善我的帖子?
马丁·皮特斯

看下面我的回答。
德米特里

@Dmitry:这是一个不同的问题,与字符串文字无关。该网站上还有其他文章处理raw_unicode_escape编解码器。一个特定的程序包具有引发相同异常的错误实际上并不是对该特定问题的答案,因此我再次将其删除(社区之前已经删除了它)。我怀疑有解决该特定bug的更好方法(例如,不必一开始就必须使用raw_unicode_escape)。
马丁·皮特斯

10

C:\\Users\\expoperialed\\Desktop\\Python 这种语法对我有用。


7

这通常发生在Python 3中。常见的原因之一是在指定文件路径时,您需要使用“ \\”而不是“ \”。如:

filePath = "C:\\User\\Desktop\\myFile"

对于Python 2,只需使用“ \”即可。


5
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

对于Python 3及更高版本的Python程序,请使用“ \\”。错误将得到解决。


为什么要三重\ 编辑错字?好的,现在我看到帖子的历史记录,并且某人没有足够仔细地修复格式,所以我已修复了该问题。请熟悉SO功能
Marek R

1

所有这三种语法都能很好地工作。

另一种方法是先写

path = r'C:\ user \ ..........'(无论您使用什么路径)

然后将其传递给os.chdir(path)


0

用这个

os.chdir('C:/Users\expoperialed\Desktop\Python')

-1

我有同样的错误。基本上,我怀疑路径在“ C:\”之后不能以“ U”或“ User”开头。通过将要从python访问的文件放在“ c:\”路径下,将目录更改为“ c:\ file_name.png”。

在您的情况下,如果必须访问“ python”文件夹,则可能重新安装python,然后将安装路径更改为“ c:\ python”。否则,只需避免路径中出现“ ... \ User ...”,然后将项目放在C:下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.