2016-02-18 4 views
0

Я пытаюсь использовать shutil.copytree для копирования каталога на несколько других каталогов. Я не могу заставить его работать. Я уверен, что мне просто нужно реализовать ignore_errors=True, но я не могу заставить его работать. Как я должен идти о реализации 'ignore_errors = True' вКопирование файлов в несколько каталогов с помощью Python Shutil

for CopyHere in DeleteThis: 
    for CopyThis in FilestoCopy: 
     shutil.copytree(CopyThis, CopyHere) 
     print('Files have been copied') 

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

import shutil 
import time 


DeleteThis = ['E:', 'F:'] 
FilestoCopy = ['C:\\Users\\2402neha\\Desktop\\Hehe'] 


for Directory_to_delete in DeleteThis: 
    shutil.rmtree(Directory_to_delete, ignore_errors=True) 
    print('Directories have been wiped') 
    time.sleep(2) 


for CopyHere in DeleteThis: 
    for CopyThis in FilestoCopy: 
     shutil.copytree(CopyThis, CopyHere) 
     print('Files have been copied') 

Вот сообщения об ошибках, которые я получаю:

Traceback (most recent call last): 
    File "C:\Users\2402neha\OneDrive\Python\Dis Cleaner\Copy paste test.py", line 17, in <module> 
    shutil.copytree(CopyThis, CopyHere) 
    File "C:\Users\2402neha\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 309, in copytree 
    os.makedirs(dst) 
    File "C:\Users\2402neha\AppData\Local\Programs\Python\Python35\lib\os.py", line 241, in makedirs 
    mkdir(name, mode) 
PermissionError: [WinError 5] Ingen tilgang: 'E:' 
+4

ли вы видите какие-либо сообщения об ошибках? потому что «я не могу заставить его работать» мало что говорит. – Alexander

+0

Просто отметить, что «CamelCase» в Python обычно используется только для имен классов. Вероятнее всего, вы увидите 'copy_this' или' copythis' для функций и имен. –

ответ

0

пункта назначения E:

Целевой каталог не должен существовать.

Из документации для shutil.copytree:

shutil.copytree(src, dst, symlinks=False, ignore=None)
Рекурсивный скопировать все дерево каталогов с корнем в src. Целевой каталог, названный dst, не должен существовать; он будет создан, а также отсутствующие родительские каталоги.

Вы, вероятно, хотите имя каталога вы копируете и присоединиться к нему с адресатом:

directory = os.path.basename(CopyThis) 
destination = os.path.join(CopyHere, directory) 
shutil.copytree(CopyThis, destination) 

 Смежные вопросы

  • Нет связанных вопросов^_^