首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语法错误:尝试在Python中使用PIL打开图像时出现unicode错误

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

Stack Overflow用户
提问于 2016-03-08 01:01:33
回答 1查看 2K关注 0票数 1

我是Python的新手。我正在尝试使用Python Pillow.But打开图像

代码语言:javascript
复制
    >>> 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

我尝试单独使用图像名称,但仍然不起作用

代码语言:javascript
复制
    >>> 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'
EN

回答 1

Stack Overflow用户

发布于 2016-03-08 01:40:24

问题源于Windows的遗留问题。试着这样做:

代码语言:javascript
复制
im=Image.open("C:/Users/User1/Desktop/map3.jpg")

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

我认为问题源于Windows的遗留问题,因为Windows(以及之前的MS-DOS )选择在路径中使用反斜杠作为分隔符。这很不幸,因为反斜杠在程序源代码中已经有了特殊的含义,所以需要对其进行转义,例如print("How many do you see \\?")。或者,Windows API函数都接受斜杠而不是反斜杠,即使图形用户界面程序(资源管理器、cmd.exe)不接受。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35849596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档