How to create 2 csv files when using recursion
<p>I want to create 2 csv files.</p>

<p>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</p>

<pre><code>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)
    writer.writerow(s)
    f3.close()

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

process_array()
</code></pre>

<p>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</p>

<p>So if the array has 10 elements then the code should create 10 csv files</p>

<p>How to do it?</p>

<p>You need to add the argument into the file name:</p>

<pre><code>f3 = open("import_"+"".join(s)+"_"+str(int(time_value))+".csv", 'wt')
</code></pre>

<p>In this case you will have two files (with <code>"ab"</code> and <code>"sv"</code> in the names) if <code>a</code> contains two elements from your example. Here we concatenate all the items of <code>s</code>, 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 <code>a</code>).</p>

<p>So, I'd recommend to use this solution:</p>

<p>In the <code>for</code> loop you can count number of elements:</p>

<pre><code>idx = 0
for s in a:
    csv_write(s, idx)
    idx = idx + 1
</code></pre>

<p>In this case you need to extend your function <code>csv_write</code> (add one more argument):</p>

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

python arrays csv