Nested For loop not running full

inshu chauhan insideshoes at gmail.com
Fri Apr 26 05:36:34 EDT 2013


On Fri, Apr 26, 2013 at 2:39 PM, Peter Otten <__peter__ at web.de> wrote:

> inshu chauhan wrote:
>
> > I have this part of my code where I am trying to traverse over an image
> by
> > running a for loop for both x and y co-ordinate axis. But the loop is
> > terminating by just reading first pixel. Can think of a reason why this
> is
> > happening ?
> >
> > The code is:
> > for sy in xrange(0, segimage.height):
> >     for sx in xrange(0, segimage.width):
> >             if segimage[sy,sx] == (0.0, 0.0, 0.0):
> >                 continue
> >             else:
> >                 seg_color = segimage[sy,sx]
> >                 blue = int(seg_color[0])
> >                 green = int(seg_color[1])
> >                 red = int(seg_color[2])
> >                 reg_num = blue + 256 * green + 65536 * red
> >                 for l in f:
> >                     sp = l.split(",")
> >                     if len(sp) == 14:
> >                         print sy, sx  # for checking which pixel its
> > reading currently
> >                         print reg_num, sp[0]  # for checking whats
> > happening
> >                         if reg_num == int(sp[0].strip()):
> >                             print reg_num, sp[0].strip() # for checking
> > whats happening
> >                             classification = int(sp[13].strip())
> >
> >
> > The inside "for loop" is for reading a csv format file from which I am
> > extracting some information.
>
> My crystal ball says that the 'for sy...' and 'for sx...' loops are running
> to completion, but you don't get the coordinates printed because you put
> them into the 'for l in f' loop which will only run once.
>

Is there any means by which I can run this 'For l in f' loop again and
again ?

>
> The quick and dirty fix is to replace
>
> f = open(...)
>
> in the code you are not showing with
>
> f == list(open(...))
>

f is just a text file(csv format).. so why list ??


> The reasonable thing to do is of course to move the preprocessing (e.g.
> csv-
> parsing) out of the sy and sx loops.
>

I did this but again then what I intend to do is not really happening, For
every pixel I read,  I want to traverse the full file, so that the
information I am taking from pixel have to match in one of the line in the
file. Can this be done by modifying my code ? or something new has to be
devised ?




> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130426/f3a1187b/attachment.html>


More information about the Python-list mailing list