On Mon, May 24, 2010 at 4:14 PM, Maria Liukis <[email protected]> wrote:

> Hello everybody,
>
> I'm using numpy V1.3.0 and ran into a case when numpy.loadtxt('foo.txt')
> raised an exception:
>
> >>>import numpy as np
> >>>np.loadtxt('foo.txt')
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File
> "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/numpy/lib/io.py",
> line 456, in loadtxt
>    raise IOError('End-of-file reached before encountering data.')
> IOError: End-of-file reached before encountering data.
> >>>
>
> if provided file 'foo.txt' is empty.
>
> Would anybody happen to know if it's a feature or a bug? I would expect it
> to return an empty array.
>

Looking at the source for loadtxt

line 591
# Read until we find a line with some values, and use
        # it to estimate the number of columns, N.
        first_vals = None
        while not first_vals:
            first_line = fh.readline()
            if first_line == '': # EOF reached
                raise IOError('End-of-file reached before encountering
data.')

So it looks like it is not a bug although I am not sure why returning an
empty array would not be valid. But then what are you going to do with the
empty array?

Vincent



>
> numpy.fromfile() handles empty text files:
>
> >>> np.fromfile('foo.txt', sep='\t\n ')
> array([], dtype=float64)
> >>>
>
> Would anybody suggest a graceful way of handling empty files with
> numpy.loadtxt() (except for catching an IOError exception)?
>
> Many thanks,
> Masha
> --------------------
> [email protected]
>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> [email protected]
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>

  *Vincent Davis
720-301-3003 *
[email protected]
 my blog <http://vincentdavis.net> |
LinkedIn<http://www.linkedin.com/in/vincentdavis>
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to