2016-03-07 2 views
0

Я новичок в Python. Я пытался открыть изображение с помощью Python Pillow.ButОшибка синтаксиса: ошибка Unicode при попытке открыть изображение с использованием PIL в Python

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

ответ

0

Проблема возникает с наследием Windows. Попробуйте вместо этого:

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

В исходном коде Python, так же, как и в большинстве других языков, включая C, C++, Java, JavaScript, C#, Ruby, Perl и PHP, обратный слеш является маскирующим. Он используется для обозначения того, что следующий символ (ы) имеет особое значение. В строковом литерале в Python \u (или \U) начинает escape-последовательность Unicode. Однако \Users недействительный Unicode-escape. Что-то вроде \u20ac было бы действительным (и является символом валюты евро).

Я говорю, что проблема связана с наследием Windows, потому что Windows (и MS-DOS, перед ней) решили использовать обратную косую черту в качестве символа разделителя в путях. Это печально, так как обратная косая черта уже содержала особое значение в исходном коде программы, поэтому ее необходимо экранировать, например print("How many do you see \\?"). Кроме того, все функции Windows API принимают косую черту вместо обратного слэша, даже если программы GUI (Explorer, cmd.exe) этого не делают.

Ваша вторая проблема (FileNotFoundError) верна: вы указали относительный путь, но файл не существует в текущем рабочем каталоге, как вы указали.

+0

Исходные строки также работают: 'r'c: \ users \ user1 \ desktop \ map3.jpg''. –

 Смежные вопросы

  • Нет связанных вопросов^_^