On 01/28/2013 08:31 AM, inshu chauhan wrote:
In the code below I am trying to read 2 files f1 and f2 , extract some data
from them and then trying to write them into a single file that is 'nf'.

import cv
f1 = open(r"Z:\modules\Feature_Vectors_300.arff")
f2 = open(r"Z:\modules\Feature_Vectors_300_Pclass.arff")
nf = open(r"Z:\modules\trial.arff", "w")


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

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

        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()


I think my code is not so correct , as I am not getting desired results and
logically it follows also but I am stuck , cannot find a way around this
simple problem of writing to a same file.. Please suggest some good
pythonic way I can do it..


Thanks in Advance




The other questions are useful, but I'll make a guess based on what you've said so far.

You're trying to read the same file f2 multiple times, as you loop around the f1 file. But you just keep the file open and try to iterate over it multiple times. You either need to close and open it each time, or do a seek to beginning, or you'll not see any data for the second and later iteration.

Or better, just read file f2 into a list, and iterate over that, which you can do as many times as you like. (Naturally this assumes it's not over a couple of hundred meg).

file2 = open(r"Z:\modules\Feature_Vectors_300_Pclass.arff")
f2 = file2.readlines()
file2.close()


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

Reply via email to