import csv
with open("source","rb") as source:
rdr= csv.reader( source )
with open("result","wb") as result:
wtr= csv.writer( result )
for r in rdr:
wtr.writerow( (r[0], r[1], r[3], r[4]) )
BTW, the for loop can be removed, but not really simplified.
in_iter= ( (r[0], r[1], r[3], r[4]) for r in rdr )
wtr.writerows( in_iter )
Also, you can stick in a hyper-literal way to the requirements to delete a column. I find this to be a bad policy in general because it doesn't apply to removing more than one column. When you try to remove the second, you discover that the positions have all shifted and the resulting row isn't obvious. But for one column only, this works.
del r[2]
wtr.writerow( r )
awkshines:$ awk -F, 'BEGIN {OFS=","} {print $1,$2,$4,$5}' ex.csvcsvis the way to go. I only useawkwhen it clearly works, and is only one line.