Writing a Python list of lists to a csv file
--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Puzzle Game 2 Looping
--
Chapters
00:00 Writing A Python List Of Lists To A Csv File
00:25 Accepted Answer Score 429
00:48 Answer 2 Score 51
00:59 Answer 3 Score 43
01:16 Answer 4 Score 15
01:45 Answer 5 Score 11
02:09 Thank you
--
Full question
https://stackoverflow.com/questions/1403...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #file #csv #fileio #python27
#avk47
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Puzzle Game 2 Looping
--
Chapters
00:00 Writing A Python List Of Lists To A Csv File
00:25 Accepted Answer Score 429
00:48 Answer 2 Score 51
00:59 Answer 3 Score 43
01:16 Answer 4 Score 15
01:45 Answer 5 Score 11
02:09 Thank you
--
Full question
https://stackoverflow.com/questions/1403...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #file #csv #fileio #python27
#avk47
ACCEPTED ANSWER
Score 430
Python's built-in csv module can handle this easily:
import csv
with open('out.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(a)
This assumes your list is defined as a, as it is in your question. You can tweak the exact format of the output CSV via the various optional parameters to csv.writer().
ANSWER 2
Score 51
You could use pandas:
In [1]: import pandas as pd
In [2]: a = [[1.2,'abc',3],[1.2,'werew',4],[1.4,'qew',2]]
In [3]: my_df = pd.DataFrame(a)
In [4]: my_df.to_csv('my_csv.csv', index=False, header=False)
ANSWER 3
Score 43
import csv
with open(file_path, 'a') as outcsv:
#configure writer to write standard csv file
writer = csv.writer(outcsv, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
writer.writerow(['number', 'text', 'number'])
for item in list:
#Write item to outcsv
writer.writerow([item[0], item[1], item[2]])
official docs: http://docs.python.org/2/library/csv.html
ANSWER 4
Score 11
If for whatever reason you wanted to do it manually (without using a module like csv,pandas,numpy etc.):
with open('myfile.csv','w') as f:
for sublist in mylist:
for item in sublist:
f.write(item + ',')
f.write('\n')
Of course, rolling your own version can be error-prone and inefficient ... that's usually why there's a module for that. But sometimes writing your own can help you understand how they work, and sometimes it's just easier.