Saya mencoba menambahkan baris baru ke file csv lama saya. Pada dasarnya, ini diperbarui setiap kali saya menjalankan skrip Python.
Saat ini saya menyimpan nilai baris csv lama dalam daftar dan kemudian menghapus file csv dan membuatnya lagi dengan nilai daftar baru.
Ingin tahu apakah ada cara yang lebih baik untuk melakukan ini.
Saya lebih suka solusi ini menggunakan
csv
modul dari perpustakaan standar danwith
pernyataan untuk menghindari membiarkan file terbuka.Poin kuncinya adalah menggunakan
'a'
untuk menambahkan ketika Anda membuka file.Jika Anda menggunakan Python 2.7, Anda mungkin mengalami baris baru yang berlebihan di Windows. Anda dapat mencoba untuk menghindari mereka menggunakan
'ab'
bukan'a'
akan ini, bagaimanapun, menyebabkan Anda TypeError: objek seperti byte diperlukan, bukan 'str' di python dan CSV di Python 3.6. Menambahkannewline=''
, seperti yang Natacha sarankan, akan menyebabkan Anda tidak kompatibel antara Python 2 dan 3 .sumber
Berbasis di jawaban @GM dan memperhatikan peringatan @John La Rooy, saya bisa menambahkan baris baru membuka file dalam
'a'
mode.Saya tidak mencoba dengan penulis biasa (tanpa Dict), tetapi saya pikir itu akan baik-baik saja.
sumber
Apakah Anda membuka file dengan mode 'a' bukannya 'w'?
Lihat Membaca dan Menulis File di python docs
sumber
Jika file ada dan berisi data, maka dimungkinkan untuk membuat
fieldname
parameter untukcsv.DictWriter
secara otomatis:sumber
sumber
Saya lakukan dengan cara ini untuk menambahkan baris baru dalam file .csv:
sumber