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.

Coba di Editor

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.

csv_demo.py
Coba di Editor
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']}.")
Keluaran Terminal
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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.