On 11/30/06, Charles R Harris <[EMAIL PROTECTED]> wrote:



On 11/30/06, Keith Goodman <[EMAIL PROTECTED]> wrote:
>
> On 11/30/06, Charles R Harris <[EMAIL PROTECTED]> wrote:
> >
> > It is also possible to put the variables of interest in a dictionary,
> then
> > pickle the dictionary. That way you can also store the variable names.
>
> >
> > In [27]: f = open(' dump.pkl','w')
> >
> > In [28]: pickle.dump( {'a':a,'b':b}, f)
> >
> > In [29]: f.close()
> >
> >  In [30]: f = open('dump.pkl','r')
> >
> > In [31]: mystuff = pickle.load(f)
> >
> > In [32]: f.close()
> >
> >  In [34]: mystuff
> > Out[34]:
> >  {'a': matrix([[2, 3],
> >         [4, 5]]), 'b': matrix([[2, 3],
> >         [4, 5]])}
>
> I think I could use that to write a function savematrix(filename, a, b,
> c,...)
>
> Is there a way to write a loadmatrix(filename) that doesn't return
> anything but makes the matrices a, b, c, ... available?


I think there is, that is why I mentioned the saving the environment
thingee. IIRC, I saw code for something like that a couple of years back but
I don't recall the details. Maybe something like:

In [80]: globals()['x'] = [1,2]

In [81]: x
Out[81]: [1, 2]

Then you just have to merge the pickled dictionary with globals(). Like
this:

>>> globals().update(mystuff)

where mystuff is the dictionary where you have your stuff. This could
probably also go something like

>>> globals().update(load(f))

where f contains the pickled dictionary.


You could probably dump the entire environment  from a subroutine,
cPickle.dump(globals(), f), which might be a good way to save everything
off, but not very efficient.

Chuck
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to