«[Errno 13] В доступе отказано» в PIL Image.open, если путь и имя файла не указаны в необработанной строке - PullRequest
0 голосов
/ 04 апреля 2020

У меня проблема с функцией Image.open() из PIL в Python.

Я пытаюсь открыть изображение из пути / папки, сохраненной в строке:

path_and_filename = "c:\tmp\test.jpeg"

image = Image.open(path_and_filename)

Тогда я получаю сообщение об ошибке:

fp = builtins.open(filename, "rb")

PermissionError: [Errno 13] Permission denied: 'c:\\tmp\\test.jpeg'

Если я определяю путь и имя файла как необработанную строку, это работает:

path_and_filename = r"c:\tmp\test.jpeg"

image = Image.open(path_and_filename)

Сообщение об ошибке относительно «разрешения "не имеет смысла, поскольку он работает с тем же файлом, если он определен как необработанная строка.

Видите ли вы какое-либо решение или рекомендацию по этому вопросу?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Проблема «разрешения» была решена:

Файлы были скопированы в горячую папку, отслеживаемую сторожевым таймером, и сторожевой таймер запустил функцию Image.open().

Файлы иногда копировались не полностью в папку, и функция уже пыталась открыть его. Вот почему я получил сообщение об ошибке «Разрешение».

После установки задержки time.sleep() перед вызовом функции open ее можно было вызвать.

Примечание: скрипт работал в необработанной переменной, так как я установил на нее уже скопированное имя файла.

0 голосов
/ 04 апреля 2020

Поместите его в тот же путь к файлу, что и все ваши файлы .py, и вам не нужен путь, который вы просто называете именем файла

   Image = image.open(‘test.jpg’)
...