On 01/28/2013 09:12 AM, inshu chauhan wrote:
Yes Chris, I understand, My Original code was

for l in f1:
     sp = l.split(",")

     if len(sp)!= 12:
         continue
     else:
         ix = sp[0].strip()
         iy = sp[1].strip()


     for s in f2:
         st = s.split(",")

         if len(st)!= 11:
             continue
         else:
             clas = st[10].strip()

         print ix, iy, clas
         print >> nf, ix, iy, clas

f1.close()
f2.close()
nf.close()

where f1 contains something like :

297, 404, , ....
298, 404, , ......
299, 404, .....
.....  ......
295, 452, ....

and f2 contains something like :

.... 7
..... 2
....2
.....7

and what I want to be written in the new file i.e. nf is something like:

297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 7
297 404 2
297 404 2
297 404 2
297 404 2
297 404 2

which m getting but partially correct because only last value is changing
not the first two... which should not happen.. In every loop all the three
values should change..


Your current logic tries to scan through the first file, and for each line that has 12 elements, scans through the entire second file. It fails to actually do it, because you never do a seek on the second file.

Now it appears your requirement is entirely different. I believe you have two text files each having the same number of lines. You want to loop through the pair of lines (once from each file, doing some kind of processing and printing). If that's the case, your nested loop is the wrong thing, and you can forget my caveat about nesting file reads.

What you want is the zip() function

for l,s in zip(f1, f2):
    #you now have one line from each file,
    #   which you can then validate and process

Note, this assumes that when a line is "bad" from either file, you're going to also ignore the corresponding line from the other. If you have to accommodate variable misses in the lining up, then your work is *much* harder.




--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to