I want to add a new column to an existing file. But it gets a little complicated with the additional loops i add.
input file:
testfile.csv
col1,col2,col3
1,2,3
3,4,5
4,6,7
output i want:
USA_testfile.csv
col1,col2,col3,country
1,2,3,USA
3,4,5,USA
4,6,7,USA
UK_testfile.csv
col1,col2,col3,country
1,2,3,UK
3,4,5,UK
4,6,7,UK
This is what i have tried:
import csv
import sys
country_list= ['USA', 'UK']
def add_col(csv_file):
    for country in country_list:
        with open(csv_file, 'rb') as fin:
            with open(country+"_timeline_outfile_"+csv_file, 'wb') as fout:
                writer = csv.writer(fout, lineterminator='\n')
                reader = csv.reader(fin)
                all_rows =[]
                row = next(reader)
                row.append('country')
                all_rows.append(row)
                print all_rows
                for row in reader:
                    row.append(country)
                    all_rows.append(row)
                writer.writerows(all_rows)
add_col(sys.argv[1])
And this is the error i got:
  File "write_to_csv.py", line 33, in add_col
    writer.writerows(all_rows)
ValueError: I/O operation on closed file
I was trying to follow this post here
 
     
     
    