Hi Chris What if i want to log that bad data and continue processing is there a way to do that ?
regards --- On Sun, 6/9/09, Chris Rebert <c...@rebertia.com> wrote: > From: Chris Rebert <c...@rebertia.com> > Subject: Re: beginner's python help > To: "Maggie" <la.f...@gmail.com> > Cc: python-list@python.org > Date: Sunday, 6 September, 2009, 8:15 AM > On Sun, Sep 6, 2009 at 12:00 AM, > Maggie<la.f...@gmail.com> > wrote: > > code practice: > > > > test = open ("test.txt", "r") > > readData = test.readlines() > > #set up a sum > > sum = 0; > > for item in readData: > > sum += int(item) > > print sum > > A slightly better way to write this: > > test = open("test.txt", "r") > #set up a sum > the_sum = 0 #avoid shadowing the built-in function sum() > for line in test: #iterate over the file directly instead > of reading > it into a list > the_sum += int(line) > print the_sum > > > test file looks something like this: > > > > 34 > > 23 > > 124 > > 432 > > 12 > > > > when i am trying to compile > > No, the error is happening at runtime. Pretty much only > SyntaxErrors > occur at compile-time. > > > this it gives me the error: invalid > > literal for int() with base 10 > > > > i know a lot of people get this and it usually means > that you try to > > cast a string into an integer and this string does not > really contain > > a “digit”..so I am just not sure how to correct it > in this case... > > I would recommend putting a `print repr(line)` inside the > loop, before > the "+=" line. This will show the input int() is getting so > you can > see out what the bad input is that's causing the error and > thus debug > the problem. > > Cheers, > Chris > -- > http://blog.rebertia.com > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list