On Mon, Feb 11, 2013 at 2:02 PM, MRAB <pyt...@mrabarnett.plus.com> wrote:
> On 2013-02-11 12:44, inshu chauhan wrote: > >> >> On Mon, Feb 11, 2013 at 1:26 PM, Steven D'Aprano >> <steve+comp.lang.python@**pearwood.info<steve%2bcomp.lang.pyt...@pearwood.info> >> <mailto:steve+comp.lang.**pyt...@pearwood.info<steve%2bcomp.lang.pyt...@pearwood.info>>> >> wrote: >> >> inshu chauhan wrote: >> >> > In the programme below I am trying to read two csv format files and >> > process them and write a new file with some of theirs data. >> > >> > import csv >> > f1_reader = csv.reader(open(r"Z:\Weka >> > work\Feature_Vectors_Fullset_**00.arff")) >> > f2_reader = csv.reader(open(r"Z:\Weka >> > work\Feature_Vectors_Fullset_**00_noxy+class.arff")) >> > nf = open(r"Z:\Weka work\classified_image00_**withoutxy.arff", >> "w") >> > >> > while True: >> > l1 = f1_reader.next() >> > while len(l1) != 12: >> > l1 = f1_reader.next() >> > l2 = f2_reader.next() >> > while len(l2) != 11: >> > l2 = f2_reader.next() >> > >> > ix = l1[0].strip() >> > iy = l1[1].strip() >> > classification = l2[8].strip() >> > >> > print >> nf, ix, iy, classification >> > >> > nf.close() >> > >> > This programme is giving me this error now : >> > >> > Traceback (most recent call last): >> > File "Z:\Weka work\final_image_**classificationwithoutxy.py", >> line 16, in >> > <module> >> > l2 = f2_reader.next() >> > StopIteration >> > >> > >> > what could be a possible reason to StopIteration ??? >> >> next() raises StopIteration when there is nothing else to return. >> >> >> py> it = iter([1, 2, 3]) >> py> it.next() >> 1 >> py> it.next() >> 2 >> py> it.next() >> 3 >> py> it.next() >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> StopIteration >> >> >> You have reached the end of the file and there is nothing else for >> the CSV >> reader to return, so it raises StopIteration. >> >> >> >> But why does it has nothing to return so early before traversing the >> whole file ? Is there any way it can be corrected ? And also the >> programme isn't writing anything to the file ? >> >> Try adding some logging so that you can see what it's doing. A simple way > would be something like: > > log_file = open(r"Z:\Weka work\log.txt", "w") > > ... > > l1 = f1_reader.next() > print >> log_file, "Read from f1:", l1 > print >> log_file, "Length is", len(l1) > > while len(l1) != 12: > l1 = f1_reader.next() > print >> log_file, "Read from f1:", l1 > print >> log_file, "Length is", len(l1) > > and so on. > -- > http://mail.python.org/**mailman/listinfo/python-list<http://mail.python.org/mailman/listinfo/python-list> > Thanks :) This worked !!!
-- http://mail.python.org/mailman/listinfo/python-list