Program yang Tangguh · Pelajaran 9 dari 11
Membaca dan menulis file
9 menit baca · BelajarCode
Variabel hilang begitu program selesai. Supaya data bertahan, simpan ke file.
Menulis file
1with open("catatan.txt", "w", encoding="utf-8") as f:2 f.write("Hari 1: belajar dictionary\n")3 f.write("Hari 2: belajar file\n")45with open("catatan.txt", "a", encoding="utf-8") as f:6 f.write("Hari 3: proyek buku nilai\n")78with open("catatan.txt", encoding="utf-8") as f:9 print(f.read())Hari 1: belajar dictionary Hari 2: belajar file Hari 3: proyek buku nilai
| Mode | Artinya |
|---|---|
"r" | Membaca (bawaan). Error jika file tidak ada |
"w" | Menulis. Isi lama dihapus, file dibuat jika belum ada |
"a" | Menambah di akhir file tanpa menghapus isi lama |
Pernyataan with otomatis menutup file setelah bloknya selesai, bahkan jika terjadi error. Selalu pakai with saat bekerja dengan file. Parameter encoding="utf-8" memastikan huruf seperti é atau aksara non-Latin tersimpan dengan benar.
Membaca baris demi baris
1with open("nilai.txt", "w", encoding="utf-8") as f:2 f.write("Andi,80\nBela,92\nCitra,75\n")34data = {}5with open("nilai.txt", encoding="utf-8") as f:6 for baris in f:7 nama, nilai = baris.strip().split(",")8 data[nama] = int(nilai)9print(data){'Andi': 80, 'Bela': 92, 'Citra': 75}Setiap baris yang dibaca masih membawa karakter baris baru \n di ujungnya, jadi dibuang dengan strip().
Modul csv
File berformat CSV (comma-separated values) adalah format umum untuk data tabel, bisa dibuka dengan aplikasi spreadsheet. Modul csv menangani detailnya, misalnya teks yang mengandung koma.
1import csv23with open("siswa.csv", "w", newline="", encoding="utf-8") as f:4 penulis = csv.writer(f)5 penulis.writerow(["nama", "alamat"])6 penulis.writerow(["Rani", "Jl. Melati 5, Bandung"])78with open("siswa.csv", encoding="utf-8") as f:9 for baris in csv.reader(f):10 print(baris)['nama', 'alamat'] ['Rani', 'Jl. Melati 5, Bandung']
Alamat yang mengandung koma tetap terbaca sebagai satu kolom, karena modul csv otomatis memberinya tanda kutip saat menulis.
File di Playground
Playground BelajarCode menjalankan Python di peramban. File yang dibuat program disimpan di memori sementara peramban dan hilang saat halaman Playground dimuat ulang. Di komputermu sendiri, file benar-benar tersimpan di folder tempat program dijalankan.
Cek pemahaman
Apa yang terjadi pada isi lama sebuah file jika dibuka dengan mode "w"?
Latihan
Rekap kehadiran dari file
Tulis file hadir.txt berisi satu nama per baris: Andi, Bela, Andi, Citra, Andi, Bela. Lalu baca file itu dan tampilkan berapa kali setiap nama hadir, urut dari yang paling sering.
Pembahasan
1with open("hadir.txt", "w", encoding="utf-8") as f:2 for nama in ["Andi", "Bela", "Andi", "Citra", "Andi", "Bela"]:3 f.write(nama + "\n")45hitung = {}6with open("hadir.txt", encoding="utf-8") as f:7 for baris in f:8 nama = baris.strip()9 if nama:10 hitung[nama] = hitung.get(nama, 0) + 11112for nama, jumlah in sorted(hitung.items(), key=lambda p: p[1], reverse=True):13 print(nama, jumlah)Andi 3 Bela 2 Citra 1
Pemeriksaan if nama: melewati baris kosong yang mungkin ada di akhir file.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.