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

Reply via email to