语法错误:尝试使用Python中的PIL打开图像时出现unicode错误

时间:2016-03-07 17:01:33

标签: python-3.x pillow

我是Python新手。我试图用Python Pillow打开图像。但是

    >>> from PIL import Image
    >>> im=Image.open("C:\Users\User1\Desktop\map3.jpg")
      File "<stdin>", line 1
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in  position 2-3: truncated \UXXXXXXXX escape

我尝试单独使用图片名称,但仍然无效

    >>> from PIL import Image
    >>> im=Image.open("map3.jpg")
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\Deepthy\AppData\Local\Programs\Python\Python35-32\lib\site-    packages\PIL\Image.py", line 2258, in open
        fp = builtins.open(filename, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: 'map3.jpg'

1 个答案:

答案 0 :(得分:0)

问题源于Windows&#39;遗产。试试这个:

x1->x2->x3->x4->x5->x1

在Python源代码中,就像在大多数其他语言中一样,包括C,C ++,Java,Javascript,C#,Ruby,Perl和PHP,反斜杠是一个转义字符。它用于表示以下字符具有特殊含义。在Python中的字符串文字中,im=Image.open("C:/Users/User1/Desktop/map3.jpg") (或\u)开始Unicode转义序列。但是,\U不是有效的Unicode转义。像\Users这样的东西是有效的(并且是欧元货币符号)。

我说问题源于Windows&#39;遗留因为Windows(以及之前的MS-DOS)选择使用反斜杠作为路径中的分隔符。这很不幸,因为反斜杠已经在程序源代码中具有特殊含义,因此需要对其进行转义,例如\u20ac。或者,Windows API函数都接受斜杠而不是反斜杠,即使GUI程序(Explorer,cmd.exe)没有。

您的第二个问题(FileNotFoundError)是正确的:您指定了一个相对路径,但该文件在您指定的当前工作目录中不存在。