Saya memiliki daftar panjang daftar bentuk berikut ---
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
yaitu nilai-nilai dalam daftar adalah berbagai jenis - float, int, string. Bagaimana cara saya menulisnya ke file csv sehingga file csv output saya terlihat seperti
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Jawaban:
Modul CSV bawaan Python dapat menangani ini dengan mudah:
Ini mengasumsikan daftar Anda didefinisikan sebagai
a
, seperti dalam pertanyaan Anda. Anda dapat mengubah format persis CSV keluaran melalui berbagai parameter opsionalcsv.writer()
seperti yang didokumentasikan di halaman referensi perpustakaan yang ditautkan di atas.Perbarui untuk Python 3
sumber
Anda bisa menggunakan
pandas
:sumber
pandas
jika perpustakaan built-incsv
dapat melakukannya.dokumen resmi: http://docs.python.org/2/library/csv.html
sumber
writerow
tidak mengambil banyak argumen.Jika untuk alasan apapun Anda ingin melakukannya secara manual (tanpa menggunakan modul seperti
csv
,pandas
,numpy
dll):Tentu saja, memutar versi Anda sendiri bisa menjadi rawan kesalahan dan tidak efisien ... itu sebabnya ada modul untuk itu. Namun terkadang menulis sendiri dapat membantu Anda memahami cara kerjanya, dan terkadang lebih mudah.
sumber
Menggunakan csv.writer dalam daftar saya yang sangat besar membutuhkan waktu cukup lama. Saya memutuskan untuk menggunakan panda, lebih cepat dan lebih mudah untuk mengontrol dan memahami:
Bagian baiknya Anda dapat mengubah sesuatu untuk membuat file csv yang lebih baik:
sumber
Solusi Ambers juga bekerja dengan baik untuk array numpy:
sumber
Jika Anda tidak ingin mengimpor
csv
modul untuk itu, Anda dapat menulis daftar daftar ke file csv hanya menggunakan Python built-insumber
Pastikan untuk menunjukkan
lineterinator='\n'
kapan membuat penulis; jika tidak, baris kosong tambahan dapat ditulis ke dalam file setelah setiap baris data ketika sumber data berasal dari file csv lainnya ...Ini solusinya:
sumber
Bagaimana kalau membuang daftar ke acar dan mengembalikannya dengan modul acar ? Cukup nyaman.
sumber
Saya mendapat pesan kesalahan saat mengikuti contoh dengan parameter baris baru di fungsi csv.writer. Kode berikut ini berfungsi untuk saya.
sumber