On Mon, May 24, 2010 at 4:14 PM, Maria Liukis <liukis@usc.edu> wrote:

Looking at the source for loadtxt

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.

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

--------------------

liukis@usc.edu

_______________________________________________

NumPy-Discussion mailing list

NumPy-Discussion@scipy.org

http://mail.scipy.org/mailman/listinfo/numpy-discussion

vincent@vincentdavis.net | ||