Fastest way to write multiple CSV's
Are you more worried about memory, speed or maintainability?   if the lists are long enough that you worry about them filling up your available memory, write them out one at a time. If not, process them in bulk.

in either case, a list-of-lists is better than maintaining 6 copies of identical code.  You could use a dictionary to store the different lists with their output filenames and avoid the duplication:

 lots_o_data = {
     'list1': [.....],
     'list2': [.....],
     'list3': [.....]
 }

 for eachfilename, eachlist in lots_o_data.items():
     with open(eachfilename, 'wb') as csvfile:
          writer = csv.writer(csvfile)
          for line in eachlist: 
              writer.writerow(line)


If the data is interleaved - stuff from different ouput lists comes up intermingled - you have to collect it all before writing. If it's sequential you can do it read A - write A - read B - write B style. Ordinarily the total time won't change much - reading and writing the data will be way slower than whatever you do in the processing. 

One thing you don't want to do is open the same source file multiple times if you don't have to - that will add extra time. Only do that if you're worried about memory.