@Anisifor

Не удается скопировать файл через shutil. [Errno 13] Permission denied. Что делать?

Нужно с помощью python скопировать файл (папку с файлами) из директории C:\Users\User\Documents в директорию C:\Users\User\AppData\files\results\Crossout . Вопрос, как это сделать с помощью python, если shutil пишет: PermissionError: [Errno 13] Permission denied: 'C:\\\\Users\\\\User\\\\Documents\\\\My Games\\\\Crossout'? Может можно использовать какие-то другие библиотеки, или я где-то ошибся?
Код:
import getpass
import os
import shutil
user = getpass.getuser()
Path = rf"C:\\Users\\{user}\\AppData\\files\\results"
Crossout = rf'C:\\Users\\{user}\\Documents\\My Games\\Crossout'
if (os.path.exists(Crossout)) == True:
    if not os.path.exists(Path + r"\\Crossout"):
         os.mkdir(Path + r"\\Crossout")
    shutil.copyfile(Crossout, Path + r"\\Crossout\\Crossout Passwords", follow_symlinks=True)
  • Вопрос задан
  • 1152 просмотра
Пригласить эксперта
Ответы на вопрос 2
@12rbah
PermissionError: [Errno 13] Permission denied: тут проблема с правами доступа видимо

os.mkdir(path, mode=0o777)
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Во-первых, освойте стандартную библиотеку pathlib для работы с путями, будет намного проще. В частности, посмотрите в сторону Path.expanduser().
Во-вторых, разберитесь с параметром exist_ok в функциях создания каталога и копирования, чтобы не писать if'ы для создания директорий.
В-третьих, copyfile() работает только с файлами, как следует из названия. Она не понимает, что делать с директорией. Поведение, которые вы ожидаете, даёт функция shutil.copytree().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы