0Pricing
Python Academy · Pelajaran

Menulis CSV dengan csv.DictWriter

Tulis data terstruktur ke CSV menggunakan DictReader dan DictWriter.

Menulis CSV dengan csv.DictWriter adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Pengantar

csv.writer dan csv.DictWriter menulis data Python ke format CSV serta menangani pemberian tanda kutip dan pemisah secara otomatis.

Dasar-Dasar csv.writer

csv.writer(f).writerow(row) menulis satu baris. writerows(rows) menulis beberapa baris.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf)
writer.writerow(['name', 'age'])
writer.writerow(['Alice', 30])
print(buf.getvalue())

Perilaku Pemberian Tanda Kutip

Secara bawaan, bidang yang berisi koma atau tanda kutip akan diberi tanda kutip secara otomatis. quoting=csv.QUOTE_ALL memberi tanda kutip pada setiap bidang.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf, quoting=csv.QUOTE_ALL)
writer.writerow(['Alice', 'NYC, NY', 30])
print(buf.getvalue())

csv.DictWriter

DictWriter menulis dict sebagai baris. Tentukan fieldnames. writeheader() menulis header kolom.
import csv, io
buf = io.StringIO()
fields = ['name', 'age']
writer = csv.DictWriter(buf, fieldnames=fields)
writer.writeheader()
writer.writerow({'name': 'Alice', 'age': 30})
print(buf.getvalue())

writerows() untuk Banyak Baris

writer.writerows(list_of_rows) lebih efisien daripada memanggil writerow() dalam perulangan.
import csv, io
buf = io.StringIO()
writer = csv.DictWriter(buf, fieldnames=['x','y'])
writer.writeheader()
writer.writerows([{'x':1,'y':2},{'x':3,'y':4}])
print(buf.getvalue())

Pemisah Khusus

csv.writer(f, delimiter='\t') menulis nilai yang dipisahkan tab (TSV).
import csv, io
buf = io.StringIO()
writer = csv.writer(buf, delimiter='\t')
writer.writerow(['a', 'b', 'c'])
print(repr(buf.getvalue()))

Parameter extrasaction

DictWriter(f, fieldnames, extrasaction='ignore') mengabaikan kunci tambahan dalam dict secara diam-diam, alih-alih memunculkan ValueError.
import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=['name'], extrasaction='ignore')
w.writeheader()
w.writerow({'name': 'Alice', 'extra': 'ignored'})
print(buf.getvalue())

Menulis ke Berkas Sebenarnya

with open('out.csv','w',newline='',encoding='utf-8') as f: — selalu gunakan newline='' dan tentukan pengodean.
import csv, tempfile, os
tmp = tempfile.mktemp(suffix='.csv')
with open(tmp, 'w', newline='') as f:
    csv.writer(f).writerows([[1,2],[3,4]])
print(open(tmp).read())
os.unlink(tmp)

Menambahkan ke CSV

open(file, 'a') menambahkan data. Berhati-hatilah agar tidak menulis header lagi saat menambahkan data.
import csv, io
buf = io.StringIO()
w = csv.writer(buf)
w.writerow(['x', 'y'])
print(buf.getvalue())

Penulisan Besar Secara Aliran

Tulis baris demi baris — jangan mengumpulkan semua baris di memori sebelum menulisnya.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf)
for i in range(5):
    writer.writerow([i, i**2])
print(buf.getvalue())

Pengujian Pulang-Pergi

Tulis data ke CSV, lalu baca kembali untuk memverifikasi kebenarannya.
import csv, io
original = [{'name':'Alice','age':'30'},{'name':'Bob','age':'25'}]
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=['name','age'])
w.writeheader()
w.writerows(original)
buf.seek(0)
read_back = list(csv.DictReader(buf))
print(read_back == original)

Pemeriksaan Cepat

Metode DictWriter mana yang menulis nama kolom sebagai baris pertama?

Ringkasan

csv.writer: writerow/writerows. DictWriter: writeheader + writerow/writerows. Selalu buka dengan newline=''. Gunakan extrasaction='ignore' untuk dict yang fleksibel.

Lanjutkan

Pertahankan usaha Anda! Lanjutkan ke pelajaran berikutnya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menulis CSV dengan csv.DictWriter” gratis?

Ya — teks lengkap “Menulis CSV dengan csv.DictWriter” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menulis CSV dengan csv.DictWriter”?

Tulis data terstruktur ke CSV menggunakan DictReader dan DictWriter. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Menulis CSV dengan csv.DictWriter” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Encoding dan Decoding JSON
  2. Menangani Struktur JSON Bersarang
  3. Membaca CSV dengan csv.reader
  4. Menulis CSV dengan csv.DictWriter
← Kembali ke Python Academy