簡體   English   中英

語法錯誤:嘗試在Python中使用PIL打開圖片時出現Unicode錯誤

[英]Syntax error:unicode error on trying to open image using PIL in Python

我是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'

問題源於Windows的遺留問題。 嘗試以下方法:

im=Image.open("C:/Users/User1/Desktop/map3.jpg")

在Python源代碼中,就像大多數其他語言(包括C,C ++,Java,Javascript,C#,Ruby,Perl和PHP)一樣,反斜杠是轉義字符。 用於指示以下字符具有特殊含義。 在Python的字符串文字中, \\u\u003c/code> (或\\U )開始Unicode轉義序列。 但是, \\Users不是有效的Unicode轉義。 \€類的\€將是有效的(並且是歐元貨幣符號)。

我說這個問題源於Windows的遺留問題,因為Windows(及其之前的MS-DOS)選擇在路徑中使用反斜杠作為分隔符。 這很不幸,因為反斜杠在程序源代碼中已經具有特殊含義,因此需要轉義它,例如print("How many do you see \\\\?") 或者,即使GUI程序(Explorer,cmd.exe)不接受,Windows API函數也都接受斜杠而不是反斜杠。

您的第二個問題(FileNotFoundError)是正確的:您指定了相對路徑,但是文件在您指定的當前工作目錄中不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM