On 2013-02-11 12:44, inshu chauhan wrote:
On Mon, Feb 11, 2013 at 1:26 PM, Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info <mailto:steve+comp.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