Laszlo Nagy wrote:

import numpy

data = numpy.array(...)

numpy.save("test.np",data)

This is very good, but I want to save the data into a file object with a

write() method. E.g. not a real file. (My purpose right now is to save

many arrays into one binary file, while recording starting positions of

the arrays.)

How can I do that?

numpy.save() accepts file(-like) objects, the help is quite clear about

that:

"""

save(file, arr)

Save an array to a binary file in NumPy format.

Parameters

----------

f : file or string

File or filename to which the data is saved. If the filename

does not already have a ``.npy`` extension, it is added.

x : array_like

Array data.

"""

import numpy

from StringIO import StringIO

stream = StringIO()

a = numpy.array([1,2,3])

b = numpy.array([10, 11])

numpy.save(stream, a)

pos = stream.tell()

numpy.save(stream, b)

stream.seek(0)

stream.seek(pos)

numpy.load(stream)

array([10, 11])

stream.seek(0)

numpy.load(stream)

array([1, 2, 3])

Peter