Does array.read() move file pointer automatically?
Lionel
lionel.keene at gmail.com
Wed Feb 4 20:39:01 EST 2009
On Feb 4, 5:10 pm, MRAB <goo... at mrabarnett.plus.com> wrote:
> Lionel wrote:
>
> > On Feb 4, 3:10 pm, MRAB <goo... at mrabarnett.plus.com> wrote: >> Lionel wrote:
>
> >>
> >> > Hello everyone. Quick question: When using the "read()" method in the
> >> > array module, must I redirect the current file pointer or will that
> >> > occur automatically?
> >> >
> >> > For example, if I were to sequentially read data in chunks from a
> >> > binary file as in:
> >> >
> >> >
> >> > for currentChunk in range(numberOfChunksToRead):
> >> >
> >> > floatData = array.array('f')
> >> > floatData.read(MyFileHandle, numberOfFloatsPerChunk)
> >> > ...go to work on data...
> >> >
> >> >
> >> > at each iteration of the "for" loop, will the next chunk of bytes be
> >> > read into "floatData" or must I move the file pointer by calling
> "seek
> >> > ()" or some function like that?
> >> >
> >> The read() method has been deprecated since version Python 1.5.1. Use
> >> the fromfile() method instead.
> >>
> >> It will advance the file pointer.
> >
> > Thank you, I'll change it. On a related matter, I seem to be making a
> > mistake somewhere in the way I'm importing and using modules (in
> > particular the "array" module).
> >
> > The following code generates an error (traceback message follows
> > code):
> >
> > import pdb
> > import array
> > from numpy import *
> >
> [snip]
> I think that numpy has a class called "array", so the "import *" will
> result in the name "array" binding to that, thus hiding the module
> called "array" that you've only just imported!
I believe that's correct. I've gotten it to work by changing the
import statements to:
import pdb
import array
import numpy
and then I qualify the module specific attributes as either
"numpy.SomeAttribute" or "array.SomeAttribute" to avoid this namespace
ambiguity.
Thanks for the input!
L
More information about the Python-list
mailing list