pathlib — Mengurus Lokasi File
Menyambung nama folder dengan tanda tambah adalah sumber bug lintas sistem operasi. pathlib menghapus masalah itu.
Intisari
from pathlib import Path, laluPath("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)
| Parameter | Gunanya |
|---|---|
parents=True | Buat folder induk yang belum ada sekalian |
exist_ok=True | Jangan 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.