From: davidgp on
hello,
i have a text file that contains gps coordinates that i want to load
into my mysql database
the file is basically in this format:
52.2375412
5.1802704

i basically tried this:
lat =0.0
for line in f:
lat = float(line)

but this gives an error.. does anyone know what i should to do?
thanks,
From: Stephen Hansen on
On 6/21/10 3:54 PM, davidgp wrote:
> i basically tried this:
> lat =0.0
> for line in f:
> lat = float(line)
>
> but this gives an error.. does anyone know what i should to do?
> thanks,

"An error"?

Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open("test.txt", "r")
>>> for line in f:
... print float(line)
...
52.2375412
5.1802704

Always include what the actual error is that you're running into.

--

Stephen Hansen
... Also: Ixokai
... Mail: me+list/python (AT) ixokai (DOT) io
... Blog: http://meh.ixokai.io/

From: davidgp on
On Jun 21, 4:00 pm, Stephen Hansen <me+list/pyt...(a)ixokai.io> wrote:
> On 6/21/10 3:54 PM, davidgp wrote:
>
> > i basically tried this:
> > lat =0.0
> > for line in f:
> >   lat = float(line)
>
> > but this gives an error.. does anyone know what i should to do?
> > thanks,
>
> "An error"?
>
> Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
> [GCC 4.2.1 (Apple Inc. build 5646)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.>>> f = open("test.txt", "r")
> >>> for line in f:
>
> ...     print float(line)
> ...
> 52.2375412
> 5.1802704
>
> Always include what the actual error is that you're running into.
>
> --
>
>    Stephen Hansen
>    ... Also: Ixokai
>    ... Mail: me+list/python (AT) ixokai (DOT) io
>    ... Blog:http://meh.ixokai.io/
>
>  signature.asc
> < 1KViewDownload

sorry :)

invalid literal for long() with base 10: '51.9449702'
this is the error i'm getting when i use long(line)

and this is the error for float(line)
invalid literal for float(): not found

cheers,
From: Stephen Hansen on
On 6/21/10 4:03 PM, davidgp wrote:
>
> sorry :)

Okay, I should be more specific: include full tracebacks and some real
copied and pasted code :) Don't throw away nice debugging information
Python gave you, feed it to us.

> invalid literal for long() with base 10: '51.9449702'
> this is the error i'm getting when i use long(line)

Yes, "51.9449702" is an invalid literal for long. Long produces
integers: no decimal points.

However:
> and this is the error for float(line)
> invalid literal for float(): not found

Its a perfectly valid literal for float:
>>> float('51.9449702')
51.9449702

So if you're getting that error, you're doing something else that you're
not telling us.

I suspect, somehow (I'd have to see your code to be sure), that your
"line" in the second case doesn't have that number. Try it in the
interactive interpreter. float('51.9449702') works fine. I suspect your
"line", for whatever reason, contains the string "not found", as in:

>>> float('not found')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): not found

--

Stephen Hansen
... Also: Ixokai
... Mail: me+list/python (AT) ixokai (DOT) io
... Blog: http://meh.ixokai.io/

From: davidgp on
On Jun 21, 4:18 pm, Stephen Hansen <me+list/pyt...(a)ixokai.io> wrote:
> On 6/21/10 4:03 PM, davidgp wrote:
>
>
>
> > sorry :)
>
> Okay, I should be more specific: include full tracebacks and some real
> copied and pasted code :) Don't throw away nice debugging information
> Python gave you, feed it to us.
>
> > invalid literal for long() with base 10: '51.9449702'
> > this is the error i'm getting when i use long(line)
>
> Yes, "51.9449702" is an invalid literal for long. Long produces
> integers: no decimal points.
>
> However:
>
> > and this is the error for float(line)
> > invalid literal for float(): not found
>
> Its a perfectly valid literal for float:>>> float('51.9449702')
>
> 51.9449702
>
> So if you're getting that error, you're doing something else that you're
> not telling us.
>
> I suspect, somehow (I'd have to see your code to be sure), that your
> "line" in the second case doesn't have that number. Try it in the
> interactive interpreter. float('51.9449702') works fine. I suspect your
> "line", for whatever reason, contains the string "not found", as in:
>
> >>> float('not found')
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ValueError: invalid literal for float(): not found
>
> --
>
>    Stephen Hansen
>    ... Also: Ixokai
>    ... Mail: me+list/python (AT) ixokai (DOT) io
>    ... Blog:http://meh.ixokai.io/
>
>  signature.asc
> < 1KViewDownload

ah, i see :P
float("45.34") or whatever does work fine, but the problem is that i'm
reading it from a text file. so somehow it is not a real string or
whatever..
here's a part of the code:
f = open ('/home/david/out.txt', 'r')

for line in f:
if tel ==6:
buf = line.replace('\n', '')
lat = float(buf)
if tel ==7:
buf = line.replace('\n', '')
lng = float(buf)

basically it goes wrong in the last part where i try to convert the
line to a float..
i'm 100% sure that it's getting a number, not a text string

cheers!