Отказ в доступе к переносу папок
Я пытаюсь переместить файлы из одной директории в другую, но у меня ошибка:
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')
Вот так, по идее, должно работать.
