17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

dircache<br />

filecmp<br />

Principaux modules<br />

CHAPITRE 8<br />

Ce module implémente une version spécifique de listdir(), similaire à<br />

os.listdir() mais dont le résultat est trié, puis sauvegardé en mémoire, dans le dictionnaire<br />

cache, global au module dircache.<br />

Les appels suivants se basent alors sur la date de modification du répertoire pour<br />

éviter de relire l’arborescence si rien n’a changé. Cette approche permet d’augmenter<br />

très sensiblement les performances des programmes qui accèdent régulièrement au<br />

système de fichiers.<br />

Utilisation du cache<br />

>>> import dircache<br />

>>> dircache.listdir('/')<br />

['.autofsck', '.rnd', '.thunderbird', 'backups', 'bin', 'boot',<br />

'command', 'dev', 'etc', 'home', 'initrd', 'lib', 'lost+found', 'mnt',<br />

'nohup.out', 'opt','proc', 'root', 'sbin', 'service', 'slapd.log',<br />

'src', 'srv', 'sys', 'tmp', 'usr', 'var']<br />

>>> dircache.cache<br />

{'/': (1124398584, ['.autofsck', '.rnd', '.thunderbird', 'backups',<br />

'bin', 'boot', 'command', 'dev', 'etc', 'home', 'initrd', 'lib',<br />

'lost+found', 'mnt', 'nohup.out', 'opt', 'proc', 'root', 'sbin',<br />

'service', 'slapd.log', 'src', 'srv', 'sys', 'tmp', 'usr', 'var'])}<br />

dircache fournit aussi une fonction reset() pour vider le dictionnaire cache.<br />

Permet de comparer des fichiers et des répertoires complets.<br />

cmp(f1, f2[, shallow=True[, use_statcache]]) ->booléen<br />

Compare le fichier nommé f1 avec le fichier f2. Si shallow est à True, les fichiers<br />

sont considérés égaux si un appel à os.stat() est identique pour les deux. Si shallow<br />

est à False, une lecture du fichier est effectuée pour la comparaison. Lorsqu’une<br />

comparaison par lecture est effectuée, le résultat est systématiquement mis en cache<br />

et n’est recalculé que si les dates des fichiers changent. use_statecache est obsolète<br />

depuis la version 2.3.<br />

class dircmp(a, b[, ignore[, hide]]) -> instance<br />

Crée un objet de type dircmp, qui permet de comparer les répertoires a et b. ignore<br />

est une liste de noms à ignorer et est par défaut initialisée à ['RCS', 'CVS',<br />

'tags']. hide est une liste de noms à ne pas afficher et est par défaut initialisée à<br />

[os.curdir, os.pardir], soit ['.', '..'] sous Unix et MS-Windows.<br />

249

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

Saved successfully!

Ooh no, something went wrong!