← Semua pembelajaran / Python Dasar
Fase 6 · String, File & Error

pathlib — Mengurus Lokasi File

Menyambung nama folder dengan tanda tambah adalah sumber bug lintas sistem operasi. pathlib menghapus masalah itu.

Sumber asli docs.python.org Resmi Rangkuman ~4 menit baca

Intisari

  • from pathlib import Path, lalu Path("data") / "file.txt".
  • Garis miring / dipakai untuk menyambung — Python yang memilih pemisah yang benar per sistem operasi.
  • .exists(), .is_file(), .is_dir() untuk memeriksa.
  • .read_text() dan .write_text() — baca/tulis file kecil dalam satu baris.
  • .mkdir(parents=True, exist_ok=True) membuat folder tanpa error kalau sudah ada.

Masalah dengan menyambung teks

folder = "data"
nama = "hasil.txt"

path = folder + "/" + nama          # bekerja di Linux/macOS
path = folder + "\\" + nama         # Windows pakai backslash

Kodemu jadi terikat pada satu sistem operasi, dan gampang salah kalau salah satu bagian sudah punya garis miring di ujungnya.

from pathlib import Path

path = Path("data") / "hasil.txt"
print(path)         # data/hasil.txt   (atau data\hasil.txt di Windows)

Operator / di sini bukan pembagian — untuk objek Path, artinya “masuk ke dalam”.

Membuat path

Path("catatan.txt")                    # di folder saat ini
Path("data") / "2026" / "laporan.csv"  # bertingkat
Path.home() / "Documents" / "belajar"  # folder home pengguna
Path.cwd()                             # folder kerja saat ini

Memeriksa

f = Path("data.txt")

f.exists()      # True kalau ada
f.is_file()     # True kalau berupa file
f.is_dir()      # True kalau berupa folder

f.name          # 'data.txt'
f.stem          # 'data'          nama tanpa akhiran
f.suffix        # '.txt'
f.parent        # Path('.')       folder induknya
if not f.exists():
    print("File belum ada, membuat baru...")

Baca dan tulis satu baris

p = Path("catatan.txt")

p.write_text("Halo dunia\n", encoding="utf-8")     # tulis (menimpa)
isi = p.read_text(encoding="utf-8")                # baca seluruhnya

Kapan pakai ini, kapan pakai with open()? read_text()/write_text() untuk file kecil yang muat sekali baca — paling ringkas. Untuk file besar atau saat kamu menulis baris demi baris, tetap pakai with open().

Membuat folder

Path("output").mkdir(exist_ok=True)
Path("data/2026/januari").mkdir(parents=True, exist_ok=True)
ParameterGunanya
parents=TrueBuat folder induk yang belum ada sekalian
exist_ok=TrueJangan error kalau foldernya sudah ada

Menulis keduanya sekaligus membuat baris ini aman dijalankan berkali-kali.

Mendaftar isi folder

for f in Path("data").iterdir():
    print(f.name)                       # semua isi, file dan folder

for f in Path("data").glob("*.txt"):
    print(f.name)                       # hanya file .txt

for f in Path("data").rglob("*.csv"):
    print(f)                            # .csv termasuk di subfolder

Contoh: mengolah banyak file sekaligus

from pathlib import Path

masuk = Path("dokumen")
keluar = Path("hasil")
keluar.mkdir(exist_ok=True)

for f in masuk.glob("*.txt"):
    isi = f.read_text(encoding="utf-8")
    (keluar / f.name).write_text(isi.upper(), encoding="utf-8")
    print(f"Selesai: {f.name}")

Sembilan baris untuk pekerjaan yang manual akan makan waktu berjam-jam. Inilah jenis tugas yang paling sering diberikan orang pada Python di hari-hari pertamanya.

Kalau kamu menemukan tutorial yang memakai os.path.join(), itu cara lama. Masih bekerja dan masih banyak dipakai di kode lama, tapi untuk kode baru pilih pathlib.

Latihan: tulis program yang menghitung berapa file dan berapa folder ada di dalam sebuah direktori, lalu mencetak nama file terbesar (petunjuk: f.stat().st_size).

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.