Format file CSV paling sering digunakan untuk memelihara database dan spreadsheet. Baris pertama dalam file CSV paling sering digunakan untuk mendefinisikan bidang kolom sementara baris lainnya yang tersisa dianggap sebagai baris. Struktur ini memungkinkan pengguna untuk menyajikan data tabular menggunakan file CSV. File CSV dapat diedit di editor teks apa pun. Namun, aplikasi seperti LibreOffice Calc menyediakan alat pengeditan lanjutan, pengurutan, dan fungsi filter.
Membaca Data dari File CSV Menggunakan Python
Modul CSV di Python memungkinkan Anda membaca, menulis, dan memanipulasi data apa pun yang disimpan dalam file CSV. Untuk membaca file CSV, Anda perlu menggunakan metode “reader” dari modul “csv” Python yang disertakan dalam pustaka standar Python.
Pertimbangkan bahwa Anda memiliki file CSV yang berisi data berikut:
Mangga, Pisang, Apel, Jeruk50,70,30,90
Baris pertama file mendefinisikan setiap kategori kolom, nama buah dalam hal ini. Baris kedua menyimpan nilai di bawah setiap kolom (stok di tangan). Semua nilai ini dibatasi oleh koma. Jika Anda membuka file ini dalam aplikasi spreadsheet seperti LibreOffice Calc, akan terlihat seperti ini:
Sekarang untuk membaca nilai dari “buah-buahan.csv" menggunakan modul "csv" Python, Anda harus menggunakan metode "reader" dalam format berikut:
impor csvdengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca (berkas)
untuk baris di data_reader:
cetak (baris)
Baris pertama dalam contoh di atas mengimpor modul "csv". Selanjutnya, pernyataan “with open” digunakan untuk membuka file yang tersimpan di hard drive Anda dengan aman (“fruits.csv” dalam hal ini). Objek "data_reader" baru dibuat dengan memanggil metode "reader" dari modul "csv". Metode "pembaca" ini mengambil nama file sebagai argumen wajib, jadi referensi ke "buah".csv” diteruskan ke sana. Selanjutnya, pernyataan loop "untuk" dijalankan untuk mencetak setiap baris dari "buah".file csv”. Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:
['50', '70', '30', '90']Jika Anda ingin menetapkan nomor baris ke output, Anda dapat menggunakan fungsi "enumerate" yang memberikan nomor ke setiap item dalam iterable (mulai dari 0 kecuali diubah).
impor csvdengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca (berkas)
untuk indeks, baris dalam enumerate(data_reader):
cetak (indeks, garis)
Variabel "indeks" menyimpan hitungan untuk setiap elemen. Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:
0 ['Mangga', 'Pisang', 'Apel', 'Oranye']1 ['50', '70', '30', '90']
Karena baris pertama dalam file "csv" biasanya berisi judul kolom, Anda dapat menggunakan fungsi "enumerate" untuk mengekstrak judul berikut:
impor csvdengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca (berkas)
untuk indeks, baris dalam enumerate(data_reader):
jika indeks == 0:
heading = baris
cetak (judul)
Blok "jika" dalam pernyataan di atas memeriksa apakah indeksnya sama dengan nol (baris pertama dalam "buah".file csv”). Jika ya, maka nilai variabel "garis" ditetapkan ke variabel "judul" baru. Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:
['Mangga', 'Pisang', 'Apel', 'Oranye']Perhatikan bahwa Anda dapat menggunakan pembatas Anda sendiri saat memanggil “csv.reader” dengan menggunakan argumen “pembatas” opsional dalam format berikut:
impor csvdengan terbuka("buah.csv") sebagai file:
data_reader = csv.pembaca(file, pembatas=";")
untuk baris di data_reader:
cetak (baris)
Karena dalam file csv, setiap kolom dikaitkan dengan nilai dalam satu baris, Anda mungkin ingin membuat objek "kamus" Python saat membaca data dari file "csv". Untuk melakukannya, Anda perlu menggunakan metode "DictReader", seperti yang ditunjukkan pada kode di bawah ini:
impor csvdengan terbuka("buah.csv") sebagai file:
data_reader = csv.Pembaca Dict(file)
untuk baris di data_reader:
cetak (baris)
Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:
'Mangga': '50', 'Pisang': '70', 'Apel': '30', 'Oranye': '90'Jadi sekarang Anda memiliki objek kamus yang mengaitkan kolom individual dengan nilai yang sesuai di baris. Ini berfungsi dengan baik jika Anda hanya memiliki satu baris. Mari kita asumsikan bahwa "buah-buahan".File csv” sekarang menyertakan baris tambahan yang menentukan berapa hari yang diperlukan agar stok buah musnah.
Mangga, Pisang, Apel, Jeruk50,70,30,90
3,1,6,4
Ketika Anda memiliki beberapa baris, menjalankan contoh kode yang sama di atas akan menghasilkan keluaran yang berbeda.
'Mangga': '50', 'Pisang': '70', 'Apel': '30', 'Oranye': '90''Mangga': '3', 'Pisang': '1', 'Apel': '6', 'Oranye': '4'
Ini mungkin tidak ideal karena Anda mungkin ingin memetakan semua nilai yang berkaitan dengan satu kolom ke satu pasangan nilai kunci dalam kamus Python. Coba contoh kode ini sebagai gantinya:
impor csvdengan terbuka("buah.csv") sebagai file:
data_reader = csv.Pembaca Dict(file)
data_dict =
untuk baris di data_reader:
untuk kunci, nilai sejalan.item():
data_dict.setdefault(kunci, [])
data_dict[kunci].tambahkan (nilai)
cetak (data_dict)
Setelah menjalankan contoh kode yang disebutkan di atas, Anda akan mendapatkan output berikut:
'Mango': ['50', '3'], 'Banana': ['70', '1'], 'Apple': ['30', '6'], 'Oranye': ['90 ', '4']Loop “for” digunakan pada setiap elemen objek “DictReader” untuk mengulang pasangan nilai kunci. Variabel kamus Python baru "data_dict" didefinisikan sebelum itu. Ini akan menyimpan pemetaan data akhir. Di bawah blok loop "untuk" kedua, metode "setdefault" kamus Python digunakan. Metode ini memberikan nilai ke kunci kamus. Jika pasangan nilai kunci tidak ada, yang baru dibuat dari argumen yang ditentukan. Jadi dalam hal ini, daftar kosong baru akan ditetapkan ke kunci jika belum ada. Terakhir, "nilai" ditambahkan ke kunci yang sesuai di objek "data_dict" terakhir.
Menulis Data ke File CSV
Untuk menulis data ke file "csv", Anda harus menggunakan metode "penulis" dari modul "csv". Contoh di bawah ini akan menambahkan baris baru ke "buah" yang ada.file csv”.
impor csvdengan terbuka("buah.csv", "a") sebagai file:
data_writer = csv.penulis (berkas)
data_penulis.baris tulis([3,1,6,4])
Pernyataan pertama membuka file dalam mode "tambahkan", dilambangkan dengan argumen "a". Selanjutnya metode "penulis" dipanggil dan referensi ke "buah".csv" file diteruskan ke sana sebagai argumen. Metode "writerow" menulis atau menambahkan baris baru ke file.
Jika Anda ingin mengonversi kamus Python ke struktur file "csv" dan menyimpan hasilnya dalam file "csv", coba kode ini:
impor csvdengan terbuka("buah.csv", "w") sebagai file:
heading = ["Mangga", "Pisang", "Apel", "Oranye"]
data_writer = csv.DictWriter(file, nama bidang=judul)
data_penulis.kepala tulis()
data_penulis.writerow("Mangga": 50, "Pisang": 70, "Apel": 30, "Oranye": 90)
data_penulis.writerow("Mangga": 3, "Pisang": 1, "Apel": 6, "Oranye": 4)
Setelah membuka "buah" kosong.csv" menggunakan pernyataan "dengan terbuka", variabel baru "judul" didefinisikan yang berisi judul kolom. Objek baru “data_writer” dibuat dengan memanggil metode “DictWriter” dan meneruskannya ke referensi “fruits”.csv" dan argumen "nama bidang". Di baris berikutnya, judul kolom ditulis ke file menggunakan metode "writeheader". Dua pernyataan terakhir menambahkan baris baru ke judul terkait yang dibuat pada langkah sebelumnya.
Kesimpulan
File CSV menyediakan cara yang rapi untuk menulis data dalam format tabel. Modul "csv" bawaan Python memudahkan untuk menangani data yang tersedia di file "csv" dan menerapkan logika lebih lanjut di dalamnya.