On Mon, Dec 8, 2008 at 14:54, Lou Pecora <[EMAIL PROTECTED]> wrote: > In looking for simple ways to read and write data (in a text readable format) > to and from a file and later restoring the actual data when reading back in, > I've found that numpy arrays don't seem to play well with repr and eval. > > E.g. to write some data (mixed types) to a file I can do this (fp is an open > file), > > thedata=[3.0,-4.9+2.0j,'another string'] > repvars= repr(thedata)+"\n" > fp.write(repvars) > > Then to read it back and restore the data each to its original type, > > strvars= fp.readline() > sonofdata= eval(strvars) > > which gives back the original data list. > > BUT when I try this with numpy arrays in the data list I find that repr of an > array adds extra end-of-lines and that messes up the simple restoration of > the data using eval.
I don't see any extra end-of-lines. Are you sure you aren't talking about the "..." when you are saving large arrays? You will need to use set_printoptions() to disable that (threshold=sys.maxint). You should also adjust use precision=18, suppress=False. That should mostly work, but it's never a certain thing. > Am I missing something simple? I know I've seen people recommend ways to > save arrays to files, but I'm wondering what is the most straight-forward? I > really like the simple, pythonic approach of the repr - eval pairing. > > Thanks for any advice. (yes, I am googling, too) The most bulletproof way would be to use numpy.save() and numpy.load(), but this is a binary format, not a text one. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion