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