rakesh1 moorthy rakesh1 moorthy - 4 months ago 17
Python Question

How to create 2 csv files when using recursion

I want to create 2 csv files.

I have 2 array in one function then i am looping through it and calling another function to write into an csv file so it will create 2 csv files

import time
import datetime
import csv
time_value = time.time()
def csv_write(s):
print s
f3 = open("import_"+str(int(time_value))+".csv", 'wt')
writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)

def process_array():
a = [["a","b"],["s","v"]]
for s in a:


The whole idea is to create 2 csv files since it has 2 array elements but the above code just overwrites the files and the codes creates only one csv file at end

So if the array has 10 elements then the code should create 10 csv files

How to do it?


You need to add the argument into the file name:

f3 = open("import_"+"".join(s)+"_"+str(int(time_value))+".csv", 'wt')

In this case you will have two files (with "ab" and "sv" in the names) if a contains two elements from your example. Here we concatenate all the items of s, so it is not the best solution (since it is possible that result of this concatenation is the same for different elements of the list a).

So, I'd recommend to use this solution:

In the for loop you can count number of elements:

idx = 0
for s in a:
    csv_write(s, idx)
    idx = idx + 1

In this case you need to extend your function csv_write (add one more argument):

def csv_write(s, idx):
    print s
    f3 = open("import_"+str(i)+"_"+str(int(time_value))+".csv", 'wt')