[Numpy-discussion] fromfile and text files...
Christopher Barker
Chris.Barker at noaa.gov
Mon Jul 28 20:17:44 EDT 2008
Hi all,
I'd like to use fromfile() to read text files that look like:
23.4, 123.43
456.321, 9568.00
32.0, 134.4
so they are comma-separated values, but separated by newlines. I tried
this code:
import numpy as np
file = "fromfiletest.txt"
a = np.fromfile(file, dtype=np.float, sep=",", count=6)
print a
and got:
6 items requested but only 2 read
[ 23.4 123.43]
So, fromfile is looking for commas, and when there is a newline, instead
of a comma, it stops looking.
This kind of kills the point of fromfile for any text files other than
whitespace - delimited ( i assume passing in " " for sep will get you an
y whitespace -- it does seem to work for spaces and newlines, anyway).
Yes, I know there is loadtext() and any number of other solutions, but
they are all processing line in python, and that is a lot slower when
reading big files.
I thought fromtext() did this, and in any case, it could -- it would be
a simple a blazingly fast way to red many common text formats.
I think it was inspired by some code I posted a couple years back that
would work with virtually any separator. That code only did double
arrays, but it was fast and easy to use for the easy cases. It used C
fscanf to simple get "the next number" then is would skip along 'till it
found another thing it could parse as a number. since C's fscanf already
skips whitespace, couldn't sep be interpreted as "this character and
white space"?
Or maybe be able to pass in a list of separators?
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the NumPy-Discussion
mailing list