Как мне справиться [Errno 13] В Python отказано в разрешении - PullRequest
0 голосов
/ 14 февраля 2019

При сохранении файла выдается следующая ошибка [Errno 13] В доступе отказано

Я пытаюсь сохранить файл в текущем рабочем каталоге, но он не сохраняется

file_data = base64.urlsafe_b64decode(i['body']['data'] .encode('UTF-8'))
store_dir = os.getcwd()
path = ''.join([store_dir, i['filename']])
f = open(path, 'w')
f.write(file_data)
f.close()

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Как обрабатывать (или ... избегать?) [Errno 13] В доступе отказано?

Простой, запись в путь, где у вас есть права на запись.

Это:

path = ''.join([store_dir, i['filename']])

может привести к тому, что у вас нет прав на запись, @vks answer - лучший способ получить правильный путь, используя ваш подход

os.path.join(store_dir, i['filename'])

, однако ...

Если вы хотите сохранить файл в текущем рабочем каталоге ...

... вам нужно только указать имя файла, нетos Необычное волшебство необходимо.

file_data = base64.urlsafe_b64decode(i['body']['data'] .encode('UTF-8'))
f = open("filename", 'w')
f.write(file_data)
f.close

Но имейте в виду, , пользователь, выполняющий этот сценарий (так же как и ваш), должен иметь разрешения на запись в этот каталог.

0 голосов
/ 14 февраля 2019

Вам необходимо использовать:

os.path.join(store_dir, i['filename'])
...