17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

248<br />

La bibliothèque standard<br />

TROISIÈME PARTIE<br />

Dans l’exemple ci-dessous (repris de la documentation officielle de Python), un log<br />

est émis à chaque copie.<br />

Logging des copies<br />

from shutil import copytree<br />

import logging<br />

def _logpath(path, names):<br />

logging.info('Working in %s' % path)<br />

return [] # nothing will be ignored<br />

copytree(source, destination, ignore=_logpath)<br />

shutil fourni aussi une fonction d’exemple ignore_patterns, qui prend une liste de<br />

motifs de type glob pour représenter les fichiers à filtrer.<br />

Dans l’exemple ci-dessous, les fichiers d’extension « .txt » et « .tmp » sont omis.<br />

Recopie conditionnelle<br />

from shutil import copytree, ignore_patterns<br />

copytree(source, destination, ignore=ignore_patterns('*.txt', 'tmp*'))<br />

rmtree(chemin, [ignore_errors[, onerror]])<br />

Supprime une arborescence complète. Si ignore_errors est à True, les erreurs de<br />

suppression seront silencieuses. Si ignore_errors est à False ou non défini, les<br />

erreurs sont passées à la fonction fournie dans onerror. Si onerror n’est pas spécifié,<br />

l’erreur est levée normalement. onerror doit pointer sur une fonction qui définit trois<br />

paramètres : function, path et excinfo.<br />

function détermine quelle fonction du module os a provoqué l’erreur<br />

(listdir(), remove() ou rmdir()).<br />

path rappelle le chemin passé à la fonction.<br />

excinfo est un appel à sys.exc_info().<br />

La fonction implémentée pour onerror peut ensuite décider de provoquer un raise<br />

ou de laisser passer l’erreur.<br />

move(src, dst)<br />

Déplace une arborescence complète.<br />

AVERTISSEMENT Perte d’informations sous plate-forme Mac<br />

Pour toutes ces fonctions, certaines métadonnées ne sont pas recopiées sous Mac, et les informations<br />

comme le créateur sont perdues.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!