У меня есть длинный список списков следующей формы ---
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
т.е. значения в списке имеют разные типы - float, int, strings. Как мне записать его в файл CSV, чтобы мой выходной файл CSV выглядел как
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Ответы:
Встроенный в Python CSV-модуль может легко справиться с этим:
Это предполагает, что ваш список определен так же
a
, как и в вашем вопросе. Вы можете настроить точный формат выходного CSV с помощью различных дополнительных параметров, чтобыcsv.writer()
как описано в справочной странице библиотеки, указанной выше.Обновление для Python 3
источник
Вы можете использовать
pandas
:источник
pandas
если встроенная библиотекаcsv
может сделать это.официальные документы: http://docs.python.org/2/library/csv.html
источник
writerow
не принимает несколько аргументов.Если по какой-либо причине вы хотели сделать это вручную (без использования таких модулей, как
csv
,pandas
иnumpy
т. Д.):Конечно, развертывание вашей собственной версии может быть подвержено ошибкам и неэффективно ... поэтому обычно для этого есть модуль. Но иногда написание собственного может помочь вам понять, как они работают, а иногда это просто проще.
источник
Использование csv.writer в моем очень большом списке заняло довольно много времени. Я решил использовать панд, это было быстрее и легче контролировать и понимать:
Хорошая часть, которую вы можете изменить, чтобы сделать лучший CSV-файл:
источник
Решение Амберса также хорошо работает для массивов:
источник
Если вы не хотите импортировать
csv
модуль для этого, вы можете написать список списков в CSV-файл, используя только встроенные модули Pythonисточник
Обязательно укажите
lineterinator='\n'
при создании писателя; в противном случае дополнительная пустая строка может быть записана в файл после каждой строки данных, если источники данных взяты из другого файла CSV ...Вот мое решение:
источник
Как насчет выгрузки списка списков в pickle и восстановления его с помощью модуля pickle ? Это довольно удобно.
источник
Я получил сообщение об ошибке при следовании примерам с параметром новой строки в функции csv.writer. Следующий код работал для меня.
источник