[Numpy-discussion] major bug in fromstring, ascii mode
Pauli Virtanen
pav@iki...
Sun Jan 27 16:19:47 CST 2008
su, 2008-01-27 kello 13:48 -0700, Charles R Harris kirjoitti:
[clip]
>
> I don't think the problem is scanf, at least not here. The following code snippet works fine for me.
>
Reading the code in arraytypes.inc.src and multiarraymodule.c, it
appears that numpy is using strtol(str, &tailptr, 0) for the string to
integer conversion. Calling strtol with BASE == 0 enables the automatic
base detection from the prefix.
However, as you say, scanf does not do this. Numpy appears to use fscanf
when reading data from files, so there is a discrepancy here:
>>> from numpy import fromfile, fromstring
>>> f = open('test.dat', 'w')
>>> f.write("20:09:21")
>>> f.close()
>>> fromfile('test.dat', dtype=int, sep=':')
array([20, 9, 21])
>>> fromstring('20:09:21', dtype=int, sep=':')
array([20, 0])
Also, the following result is quite strange, seems like a silent
failure:
>>> fromfile('test.dat', dtype=int)
array([809119794, 825375289])
I guess some more testcases should be written...
--
Pauli Virtanen
More information about the Numpy-discussion
mailing list