Отказ в доступе к переносу папок

Я пытаюсь переместить файлы из одной директории в другую, но у меня ошибка:

Traceback (most recent call last):
   File "D:/scripts123/Август_Фавн_dz_7/project_2/main.py", line 14, in <module>
    os.replace(path+"\my_project\\authapp\\templates\\authapp", path+'\my_project\\templates')
 PermissionError: [WinError 5] Отказано в доступе: 'D:\\scripts123\\Август_Фавн_dz_7\\project_2\\my_project\\authapp\\templates\\authapp'
-> 'D:\\scripts123\\Август_Фавн_dz_7\\project_2\\my_project\\templates'

Вот мой код, помогите пожалуйста:

import os
import shutil
path = os.getcwd()
list_of_temp = []
with open('walk.txt', 'w', encoding='utf-8') as f:
    for item in os.walk(path):
        f.writelines(str(item) + '\n')

with open('walk.txt', 'r', encoding='utf-8') as f:
    for line in f:
        if line.find('templates') != -1:
            list_of_temp.append(line)

os.replace(path+"\my_project\\authapp\\templates\\authapp", path+'\my_project\\templates')
os.replace(path+"\my_project\mainapp\\templates\mainapp", path+'\my_project\\templates')

print(list_of_temp)

введите сюда описание изображения


Ответы (1 шт):

Автор решения: V-Mor

По сути, как говорится здесь, функция os.replace заменяет имя файла или каталога. То есть, она работает не совсем, как обычное перемещение (типа move в cmd). В данном случае вторым аргументом следует передавать не путь к каталогу, в который Вы хотите переместить свою папку, а новый путь к своей папке, который будет после перемещения (включая название самой папки). Если перевести в код:

os.replace(path+"\\my_project\\authapp\\templates\\authapp", path+'\\my_project\\templates\\authapp')
os.replace(path+"\\my_project\\mainapp\\templates\\mainapp", path+'\\my_project\\templates\\mainapp')

Вот так, по идее, должно работать.

→ Ссылка