Python: errno13: доступ запрещен при попытке скопировать папки - PullRequest
0 голосов
/ 11 февраля 2020

Пролистал множество других постов 'errno13', но не нашел здесь ничего, что могло бы помочь

Каталог файлов выглядит следующим образом:

C:\\Users\\My HP\\Desktop\\Python\\Automate_the_boring_stuff\\Misc\\Eating\\Pie\\carrot.txt

А вот мой код для копирования папок:

for folderTitle, childFolders, fileNames in os.walk('C:\\Users\\My HP\\Desktop\\Python\\Automate_the_boring_stuff\\Misc\\Eating'):

     for folder in childFolders:
         shutil.copy(folder, folder + '_backup')

Запуск этого вызывает ошибку 'errno13: Permission denied'. Папки как-то используются или не копируются? Насколько я могу судить, они не открыты в Windows. Диспетчер задач показывает, что Windows Explorer неактивен.

Эта проблема существует в каждом редакторе, который я пробовал (Geany, IDLE и jupyter - те, к которым у меня есть доступ).

(Кроме того, открытие скрипта Python в IDLE Вызывает ошибку, если вы пытаетесь импортировать утилиту оболочки; ошибка говорит о том, что shutil не может быть найден. Не было этой проблемы с Geany / Jupyter).

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 19 февраля 2020
import os
path = r"D:\test"
file_path = r"D:\tmp.txt"
while(True):
    print(len(path))
    os.mkdir(path)
    new_file_path = os.path.join(path,file_path)
    os.rename(file_path,new_file_path)
    file_path = new_file_path
    path = os.path.join(path,"test")

вышеупомянутое делает более длинный путь с внутренними папками, оканчивается [WinError 206]. Имя файла или расширение слишком длинное, длиной 252

while(True):
    print(len(file_path))
    new_file_path = file_path+".txt"
    os.rename(file_path,new_file_path)
    file_path = new_file_path

. Вышеуказанное вызывает [WinError 3]. система не может найти указанный путь: длина 256 с использованием shutil.move вместо os.rename вызывает [Errno 2] Ни один такой файл или каталог не уверен, что это проблема, но попробуйте использовать меньше папок в папке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...