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.

Coba Solusi ini di Editor

Ikhtisar

CSV (Comma-Separated Values) adalah format file yang ada di mana-mana untuk menyimpan kumpulan data tabular. Baik mengimpor database, mengekspor spreadsheet, atau mengunduh log, membaca CSV adalah keterampilan inti. Python menyertakan modul `csv` bawaan yang berdedikasi dan sangat optimal untuk mengurai file CSV dengan mudah tanpa memerlukan perpustakaan pihak ketiga seperti pandas.

Fungsi `csv.reader` membaca file baris demi baris dan menguraikannya, memisahkan setiap baris dengan pembatas koma dan mengembalikan daftar string. Jika file CSV Anda memiliki baris header (misalnya label kolom), penggunaan `csv.DictReader` sering kali lebih disukai. Secara otomatis menguraikan setiap baris ke dalam kamus yang kuncinya adalah label kolom, membuat kode lebih mudah dibaca dan tahan terhadap perubahan urutan kolom.

Saat membuka file CSV, praktik terbaiknya adalah menyetel `newline=""` dalam pernyataan `open()`. Hal ini mencegah Python melakukan terjemahan baris baru otomatis, yang dapat menyebabkan kesalahan penguraian pada sistem operasi tertentu. Selain itu, selalu tentukan `encoding="utf-8"` untuk menangani karakter khusus.

Kode & Output Eksekusi

Skrip ini mendemonstrasikan penulisan contoh file CSV, dan membacanya menggunakan csv.reader dan csv.DictReader.

read_csv.py
Coba di Editor
import csv

# Writing a sample CSV file
sample_content = [
    ["name", "role", "salary"],
    ["Alice", "Developer", "90000"],
    ["Bob", "Manager", "110000"]
]
with open("employees.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerows(sample_content)

# 1. Reading CSV using csv.reader (List representation)
print("--- Using csv.reader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
    reader = csv.reader(file)
    header = next(reader) # Skip header row
    print("Header:", header)
    for row in reader:
         print(f"Employee: {row[0]} | Role: {row[1]}")

# 2. Reading CSV using csv.DictReader (Dictionary representation)
print("\n--- Using csv.DictReader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
    dict_reader = csv.DictReader(file)
    for row in dict_reader:
         print(f"Name: {row['name']} | Role: {row['role']} | Salary: {row['salary']}")
Keluaran Terminal
--- Using csv.reader ---
Header: ['name', 'role', 'salary']
Employee: Alice | Role: Developer
Employee: Bob | Role: Manager

--- Using csv.DictReader ---
Name: Alice | Role: Developer | Salary: 90000
Name: Bob | Role: Manager | Salary: 110000

Implementasi Langkah demi Langkah

  • Impor modul csv bawaan di skrip Anda.
  • Buka file CSV menggunakan open("employees.csv", "r", newline="", coding="utf-8") sebagai file.
  • Berikan objek file ke csv.reader(file) untuk mengurai baris file sebagai daftar string.
  • Gunakan csv.DictReader(file) untuk mengurai baris sebagai pemetaan kamus yang sesuai dengan header kolom.

Pertanyaan yang Sering Diajukan

Mengapa saya harus menyetel newline="" saat membuka file CSV?

Pengaturan newline="" mencegah Python memodifikasi karakter akhir baris secara dinamis, memastikan modul csv dapat mengurai baris baru bergaya csv dengan benar di berbagai sistem operasi.

Bagaimana cara mengurai file CSV yang menggunakan tab atau titik koma, bukan koma?

Anda dapat meneruskan pembatas khusus ke fungsi pembaca: csv.reader(file, delimiter="\t") atau csv.reader(file, delimiter=";").

Topik Terkait

Sumber Daya Python yang Direkomendasikan

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