File: Membaca & Menulis

Menyimpan dan membaca data dari file teks dengan open() dan with.

Part 18 dari 24 ± 40 menit Gratis

Mengapa file?

Variable hilang saat program berhenti. File menyimpan data secara permanen: catatan, konfigurasi, hasil perhitungan, log.

> Di KelasIT, file yang kamu buat berada di penyimpanan sementara dalam browser dan dihapus setiap kali program dijalankan ulang. Cukup untuk berlatih; di komputermu sendiri filenya tersimpan sungguhan.

open() dan mode

f = open("catatan.txt", "w", encoding="utf-8")
f.write("baris 1\n")
f.close()
ModeArti
"r"Baca (bawaan); error jika file tidak ada
"w"Tulis; menimpa isi lama / membuat baru
"a"Tambah di akhir (append)
"x"Buat baru; error jika sudah ada
"rb" / "wb"Mode biner (gambar, PDF)

with: cara yang benar

Lupa close() bisa membuat data tidak tersimpan. Blok with menutup file otomatis, bahkan jika terjadi error:

with open("catatan.txt", "w", encoding="utf-8") as f:
    f.write("baris 1\n")
    f.write("baris 2\n")

Membaca file

with open("catatan.txt", encoding="utf-8") as f:
    semua = f.read()            # satu string utuh

with open("catatan.txt", encoding="utf-8") as f:
    baris = f.readlines()       # list; tiap elemen berakhir "\n"

with open("catatan.txt", encoding="utf-8") as f:
    for b in f:                 # paling hemat memori
        print(b.strip())

strip() membuang karakter baris baru di ujung.

Menulis banyak baris

daftar = ["apel", "jeruk", "mangga"]
with open("buah.txt", "w", encoding="utf-8") as f:
    f.write("\n".join(daftar))
# atau
    for b in daftar:
        print(b, file=f)

Menangani file yang tidak ada

try:
    with open("tidak_ada.txt") as f:
        data = f.read()
except FileNotFoundError:
    data = ""

pathlib: cara modern

from pathlib import Path

p = Path("data.txt")
p.write_text("halo", encoding="utf-8")
print(p.read_text(encoding="utf-8"))
print(p.exists())

Praktik baik

  • Selalu tentukan encoding="utf-8" agar teks non-Latin aman.
  • Gunakan with, bukan close() manual.
  • Jangan membaca file raksasa sekaligus dengan read(); telusuri per baris.
  • Jangan percaya path dari pengguna tanpa validasi (keamanan).

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X