2016-06-29 3 views
0

Я использую shutil для копирования вывода из процесса восходящего потока на основе файлов, предоставленных пользователем. Иногда эти файлы несовместимы с восходящим процессом, и поэтому окончательный файл, который я пытаюсь переместить, не будет создан.Принудительно скопировать копию, чтобы продолжить просмотр списка при отсутствии пропавшего исходного файла

Я передаю список подробных путей к файлам, я хочу, чтобы он продолжал перемещать все элементы в списке, даже если отсутствует один или несколько исходных файлов.

source = ['/home/Desktop/folder/subfolder/file.ext', '/home/Desktop/folder/subfolder2/file2.ext', '/home/Desktop/folder/subfolder3/file3.ext'] 
dest = ['/home/Desktop/target/file.ext','/home/Desktop/target/file2.ext', '/home/Desktop/target/file3.ext'] 
for sou, des in zip(source, dest): 
    shutil.copyfile(sou, des) 
+0

бы не ' try: shutil.copyfile (sou, des); кроме: ... 'достаточно? –

ответ

0

Один подход был бы просто добавить обработку исключений вокруг вызова, например:

import shutil 

source = ['/home/Desktop/folder/subfolder/file.ext', '/home/Desktop/folder/subfolder2/file2.ext', '/home/Desktop/folder/subfolder3/file3.ext'] 
dest = ['/home/Desktop/target/file.ext','/home/Desktop/target/file2.ext', '/home/Desktop/target/file3.ext'] 

for sou, des in zip(source, dest): 
    try: 
     shutil.copyfile(sou, des) 
    except IOError as e: 
     print e 

Это будет отображать следующие за отсутствующих файлов:

[Errno 2] No such file or directory: '/home/Desktop/folder/subfolder/file.ext' 
[Errno 2] No such file or directory: '/home/Desktop/folder/subfolder2/file2.ext' 
[Errno 2] No such file or directory: '/home/Desktop/folder/subfolder3/file3.ext'