Error in reading and writing CSV format file in python

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Feb 11 07:26:42 EST 2013


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.



-- 
Steven




More information about the Python-list mailing list