title: Pickle versus shelve storing large dictionaries in Python
body: <p>If I am storing a large directory as a <code>pickle</code> file, does loading it via <code>cPickle</code> mean that it will all be consumed into memory at once?</p>
  
  <p>If so, is there a cross platform way to get something like <code>pickle</code>, but access each entry one key at a item (i.e. avoid loading all of the dictionary into memory and only load each entry by name)? I know <code>shelve</code> is supposed to do this: is that as portable as <code>pickle</code> though?</p>