Python CSV: Membaca dan Menulis Spreadsheet
Pelajari cara menangani data CSV dengan Python. Kuasai csv.reader, csv.writer, dan DictReader/DictWriter untuk penguraian tabel yang efisien.
Ikhtisar
CSV (Comma-Separated Values) adalah format yang ada di mana-mana untuk mengekspor dan mengimpor data dari spreadsheet dan database relasional. Karena file CSV adalah file teks sederhana, file tersebut didukung secara universal oleh alat analisis, platform database, dan bahasa pemrograman. Python dilengkapi modul `csv` bawaan yang secara khusus dioptimalkan untuk penguraian, penulisan, dan manipulasi data tabular tanpa memerlukan perpustakaan pihak ketiga seperti panda.
Modul csv menyediakan dua antarmuka utama: pembaca/penulis berbasis daftar dan pembaca/penulis berbasis kamus. `csv.reader()` dan `csv.writer()` mewakili setiap baris dalam CSV sebagai daftar string, yang sederhana namun memerlukan kolom referensi berdasarkan indeks numeriknya. Untuk pendekatan yang lebih tangguh, pengembang menggunakan `csv.DictReader()` dan `csv.DictWriter()`. Kelas-kelas ini memetakan setiap baris ke kamus menggunakan baris header CSV sebagai kunci, menghasilkan kode yang sangat mudah dibaca dan tidak rusak jika kolom disusun ulang.
Saat menangani file CSV, detail sintaksis penting. Program yang berbeda menggunakan pembatas yang berbeda (seperti tab atau titik koma) dan menangani tanda kutip atau akhir baris dengan cara yang berbeda. Modul `csv` memungkinkan Anda menentukan pembatas khusus, aturan kutipan, dan karakter escape melalui parameter 'dialek'. Selain itu, saat membuka file CSV dengan Python, persyaratan penting adalah meneruskan `newline=''` ke fungsi `open()` untuk mencegah masalah baris kosong di berbagai sistem operasi.
Kode & Output Eksekusi
Menulis data ke file CSV menggunakan DictWriter dan membacanya kembali dengan DictReader.
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.Implementasi Langkah demi Langkah
- Mengekspor catatan spreadsheet untuk analisis keuangan
- Mengimpor katalog daftar kontak ke dalam database
- Memformat keluaran statistik dari skrip komputasi
Pertanyaan yang Sering Diajukan
Mengapa saya perlu menentukan newline="" saat membuka file CSV?
Hal ini diperlukan oleh penulis internal modul csv untuk mencegah baris kosong tambahan dimasukkan, khususnya pada platform Windows.
Bagaimana cara mengurai file CSV yang menggunakan tab, bukan koma?
Anda dapat meneruskan parameter pembatas ke pembaca atau penulis, misalnya csv.reader(file, delimiter='\t').
Topik Terkait
Pelajari cara membaca dan menulis file dengan Python. Kuasai open(), read(), write(), dan manajer konteks untuk menangani operasi file dengan aman tanpa kebocoran sumber daya.
Parsing Python JSONPelajari cara membaca, menulis, dan mengurai data JSON dengan Python. Kuasai json.loads, json.dumps, dan sesuaikan encoder/decoder JSON.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Cara Membaca dan Mengurai File CSV dengan Python
Pelajari cara membaca dan mengurai file CSV dengan Python menggunakan modul csv bawaan. Kuasai bacaan sebagai daftar, pembaca kamus, dan pembatas khusus.
Lembar
Panduan referensi lengkap untuk manipulasi string Python. Kuasai pemformatan, pencarian, pemisahan, penggantian, dan pemeriksaan properti string.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.