File.read() sometimes not reading everything

Larry Bates lbates at swamisoft.com
Thu Mar 11 15:52:07 CET 2004


Your file may contain an EOF character before the actual end
of file.  You might want to try f=open('myFile','rb') to
open in binary mode, which would ignore EOF characters and
read the entire file.

-Larry
"Boris Boutillier" <boris.boutillier at arteris.net> wrote in message
news:pan.2004.03.11.10.07.48.456622 at arteris.net...
> HI all,
>
> I came across a strange behaviour with read method, and I'm not sure if
> this is a filesystem problem or a misuse of this method.
> I do the simple following thing :
> f = open ('myFile','r')
> content = f.read()
> f.close()
>
> When I use this lines really intensively sometimes, at random the content
> is not the full content, it lacks some lines at the end.
> When reading the file.read docstring I see that there can be some problems
> with non-blocking file, but I suppose open() is by default creating a
blocking
> file.
>
> Is the file line-buffered by default ? This could be a reason for this
> early EOF, as I'm reading all the lines at once, and there is several
> lines in the file ?
>
> I'm at the moment trying to replace the previous read call by:
> content = '\n'.join(f.readlines)
> Not sure if this will work better, I'll say you.
>
> Any other idea of this strange behaviour ? Can this be a problem with
> filesystem also ?
>
> Any ideas welcomed !
>
> Boris





More information about the Python-list mailing list