Daftar Referensi Python

with membuka sumber daya (paling sering: file) dan menjamin sumber daya itu ditutup otomatis saat bloknya selesai — bahkan kalau terjadi error di tengah jalan. Ini alasan kenapa semua contoh file di situs ini memakai with.

Sintaks

with open("file.txt", "r", encoding="utf-8") as f:
    isi = f.read()
# keluar blok -> file otomatis tertutup

Kenapa Bukan open() dan close() Manual?

Aspek Manual (close sendiri) Dengan with
Kalau ada error di tengah file bisa tidak pernah tertutup tetap tertutup
Lupa close() mungkin data belum tersimpan tidak mungkin lupa
Panjang code lebih panjang lebih ringkas

Contoh

with open("catatan.txt", "w", encoding="utf-8") as f:
    f.write("Halo dari with!")

with open("catatan.txt", "r", encoding="utf-8") as f:
    print(f.read())

Coba di IDE

Output:

Halo dari with!

Contoh Lainnya

Bukti file tertutup otomatis

with open("data.txt", "w", encoding="utf-8") as f:
    f.write("tes")
    print("Di dalam blok:", f.closed)

print("Di luar blok:", f.closed)

Coba di IDE

Output:

Di dalam blok: False
Di luar blok: True

Dua file sekaligus dalam satu with

with open("a.txt", "w", encoding="utf-8") as fa, \
     open("b.txt", "w", encoding="utf-8") as fb:
    fa.write("isi A")
    fb.write("isi B")

with open("a.txt", "r", encoding="utf-8") as f:
    print(f.read())

Coba di IDE

Output:

isi A

Kesalahan Umum

  • Membaca file di luar blok withValueError: I/O operation on closed file. Semua operasi file harus di dalam bloknya.
  • Lupa as f — tanpa itu kamu tidak punya pegangan ke filenya.
  • with tidak menangkap error (itu tugas try/except) — ia hanya menjamin sumber daya ditutup.

Pelajari Lebih Lanjut