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.

open(nom_fichier[, flag[, protocole[, writeback]]])<br />

Principaux modules, partie 2<br />

CHAPITRE 9<br />

Ouvre un dictionnaire persistent contenu dans le fichier nom_fichier. flag détermine<br />

le type d’ouverture, à savoir :<br />

r : lecture seule ;<br />

w : lecture-écriture ;<br />

c : création si base de donnée inexistante, puis accès en lecture-écriture (valeur<br />

par défaut).<br />

protocole, s’il est fourni et différent de None, est passé directement à cPickle, et<br />

détermine la structure de sérialisation (voir la section précédente).<br />

Lorsque writeback est fourni et différent de True, shelve conserve en mémoire tous<br />

les éléments modifiables du dictionnaire et les réécrit dans le fichier au moment de la<br />

fermeture. Cette option permet de mettre à jour automatiquement ces éléments mais<br />

peut devenir relativement gourmande en mémoire.<br />

Utilisation de shelve<br />

>>> import shelve<br />

>>> import __builtin__<br />

>>> documentation = shelve.open('primitives.db')<br />

>>> for element in dir(__builtin__):<br />

... if element.startswith('_'):<br />

... continue<br />

... doc = getattr(__builtin__, element).__doc__<br />

... try:<br />

... documentation[element] = doc<br />

... except TypeError:<br />

... print 'impossible de pickler %s' % str(doc)<br />

...<br />

>>> documentation.close()<br />

>>> documentation = shelve.open('primitives.db')<br />

>>> for element in documentation:<br />

... print('primitive %s:\n%s\n\n' % \<br />

... (element, documentation[element]))<br />

...<br />

[...]<br />

primitive getattr:<br />

getattr(object, name[, default]) -> value<br />

Get a named attribute from an object; getattr(x, 'y') is equivalent to<br />

x.y.<br />

When a default argument is given, it is returned when the attribute<br />

doesn't<br />

exist; without it, an exception is raised in that case.<br />

269

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

Saved successfully!

Ooh no, something went wrong!