эффективное использование Python Shutil Copy2 - PullRequest
1 голос
/ 18 января 2011

Если мы посмотрим на функцию копирования файлов, мы увидим, что есть несколько исключений, которые нужно обработать.Вот хороший пример: http://msdn.microsoft.com/en-us/library/9706cfs5.aspx

Мой вопрос: если я использую python shutil copy2, на что следует обратить внимание, чтобы справиться с различными исключениями (исходный файл не найден, доступ не разрешен и т. Д.)?

например

def copy_file (self):   
    if not os.path.isdir(dest_path):
        os.makedirs(dest_path)
    shutil.copy2(src_path, dest_path)

что мне делать с вышеуказанной функцией?

1 Ответ

7 голосов
/ 18 января 2011

Вам может понадобиться обработать исключение IOError, которое может быть вызвано из-за каких-либо разрешений или из-за неверного имени получателя.

try:
    shutil.copy(src,dst)
except IOError as e:
    print e

Другие исключения, упомянутые в статье MSDN, по-видимому, подпадают под ту же ошибку IOError в python. FileNotFound и DirectoryNotFound на самом деле не применимы, так как shutil.copy создаст пункт назначения, если он еще не существует. Кроме того, я нахожу, что случаи OSError также удалены в этом случае.

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