Error in reading and writing CSV format file in python

inshu chauhan insideshoes at gmail.com
Mon Feb 11 08:09:42 EST 2013


On Mon, Feb 11, 2013 at 2:02 PM, MRAB <python at 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.python at pearwood.info>
>> <mailto:steve+comp.lang.**python at pearwood.info<steve%2Bcomp.lang.python at 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 !!!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130211/1be0edbe/attachment.html>


More information about the Python-list mailing list