I read and re-read "Python in a Nutshell" written by Alex Martelli, who knows what he is talking about. I'm a bit new to python and I'm going to start doing persistence side on a project. Martelli's book seems to tell me that I should use shelve module, but any code I browsed is using pickle instead. Is there any reason to prefer pickle over shelve?
En Sun, 18 May 2008 00:14:19 -0300, Guillaume Bog <gui...@gmail.com> escribió:
> I read and re-read "Python in a Nutshell" written by Alex Martelli, > who knows what he is talking about. I'm a bit new to python and I'm > going to start doing persistence side on a project. Martelli's book > seems to tell me that I should use shelve module, but any code I > browsed is using pickle instead. Is there any reason to prefer pickle > over shelve?
A shelve is just a persistent dictionary that uses pickle to store the objects. If you want to store one or a few objects, using pickle directly may be easier. Any problem you may have with pickle (nonpickleable objects, security risks) will happen with shelve too.
"Gabriel Genellina" <gagsl-...@yahoo.com.ar> writes: > A shelve is just a persistent dictionary that uses pickle to store > the objects. If you want to store one or a few objects, using > pickle directly may be easier. Any problem you may have with pickle > (nonpickleable objects, security risks) will happen with shelve too.
Shameless plug warning!
If you want to store pickles "directly" in a directory with shelve-like dict API, you may also be interested in my "pickleshare" module: