On Jan 27, 2008 3:19 PM, Pauli Virtanen <[EMAIL PROTECTED]> wrote: > > 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]) >
I vote for fromstring working like fromfile. > > Also, the following result is quite strange, seems like a silent > failure: > > >>> fromfile('test.dat', dtype=int) > array([809119794, 825375289]) > The default is to treat the file as containing binary data. Chuck
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion