On 6 November 2015 at 12:53, Virgil Stokes <v...@it.uu.se> wrote: > Here is snippet of Python (vers. 2.7.10) code that bothers me. > > [snip bad code] > > 1) Which (the pickle or shelve code) takes less total RAM, if dogs and cats > were very large? > 2) When the last shelve.open is given, is the entire contents of > shelve.data transferred to RAM? Note, if the print sfile is uncommented > then the entire contents of shelve.data is printed out. > > I was under the impression that the entire contents of a shelved file was > not transferred to RAM when it was opened. > > > -- > https://mail.python.org/mailman/listinfo/python-list
1) That does not matter. I do know that shelve files can grow larger over time though. 2) Shelve files are pickles in disguise. Which means they need to be loaded into memory, executing *arbitrary code*. Here’s a question for you: 3) Why are you using either? Both are unsafe and can lead to issues if you take untrusted files. Use JSON. -- Chris Warrick <https://chriswarrick.com/> PGP: 5EAAEA16 -- https://mail.python.org/mailman/listinfo/python-list