Benji York wrote:
> Frank Millman wrote:
> > reader = csv.reader(open('trans.csv', 'rb'))
> > rows = []
> > for row in reader:
> >     rows.append(row)
>
> Why do you create a list of rows instead of just iterating over the
> reader directly?
> --
> Benji York

A - didn't think of it - good idea

B - can't always do it -
B1 - if the file is not sorted, I have to sort the rows first
B2 - if I need to update the file, I can modify the rows in place, and
then call
        csv.writer(open('trans.csv','wb')).writerows(rows)

BTW, I know that B2 is simplistic - to be safe I should rename, then
write, then unlink. I will do that for production code.

BTW2, an alternative to B2 is
    reader = csv.reader(open('trans.csv', 'rb'))
    newtrans = open('newtrans.csv','wb')
    writer = csv.writer(newtrans)
    for row in reader:
        [process and modify row]
        writer.writerow(row)
    newtrans.close()
    [unlink and rename]

Could be useful if the file is large. Food for thought.

Thanks

Frank

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to