Cara Menampilkan Semua File di Direktori dengan Python
Kalau kamu sering main-main dengan file system di Python, salah satu tugas yang sering muncul adalah menampilkan semua file dalam sebuah direktori. Ini berguna buat banyak hal, mulai dari manajemen file, pemrosesan data, sampai sekadar eksplorasi isi folder. Di sini, kita akan bahas beberapa cara untuk melakukannya, lengkap dengan contoh dan tips praktis.
1. Menggunakan os.listdir()
Modul os
memberikan cara sederhana untuk menampilkan semua entri dalam direktori. Fungsi os.listdir()
mengembalikan semua isi direktori, termasuk file dan subdirektori. Untuk mengambil hanya file, kita bisa tambahkan filter.
import os
def list_files(directory):
try:
entries = os.listdir(directory)
files = [f for f in entries if os.path.isfile(os.path.join(directory, f))]
return files
except FileNotFoundError:
print(f"Direktori '{directory}' tidak ditemukan.")
return []
# Contoh penggunaan
directory_path = '/path/to/directory'
print(list_files(directory_path))
Di sini, os.path.isfile()
memastikan kita hanya mengambil file.
2. Menggunakan os.scandir()
Mulai Python 3.5, os.scandir()
hadir sebagai cara yang lebih efisien untuk iterasi direktori. Ia mengembalikan iterator dari DirEntry
yang sudah punya info tipe file.
import os
def list_files(directory):
try:
with os.scandir(directory) as entries:
files = [entry.name for entry in entries if entry.is_file()]
return files
except FileNotFoundError:
print(f"Direktori '{directory}' tidak ditemukan.")
return []
directory_path = '/path/to/directory'
print(list_files(directory_path))
Lebih efisien dibanding os.listdir()
, apalagi kalau direktori besar.
3. Menggunakan pathlib.Path
pathlib
(Python 3.4+) menawarkan pendekatan object-oriented. Path
punya metode untuk iterasi direktori dan pengecekan file.
from pathlib import Path
def list_files(directory):
try:
path = Path(directory)
files = [f.name for f in path.iterdir() if f.is_file()]
return files
except FileNotFoundError:
print(f"Direktori '{directory}' tidak ditemukan.")
return []
directory_path = '/path/to/directory'
print(list_files(directory_path))
Dengan Path.iterdir()
, kode jadi lebih rapi dan modern.
4. Praktik Terbaik
- Tangani Exception: Selalu siap-siap menghadapi
FileNotFoundError
supaya program nggak crash. - Filter Berdasarkan Tipe File: Kalau cuma butuh file tertentu, pakai filter ekstensi atau modul
glob
. - Performa: Untuk direktori besar,
os.scandir()
ataupathlib.Path
lebih cepat dibandingos.listdir()
.
Kesimpulan
Menampilkan semua file dalam direktori adalah tugas yang sering muncul dan bisa dilakukan dengan berbagai cara di Python. Mulai dari sederhana dengan os.listdir()
, efisien dengan os.scandir()
, sampai modern dan rapi dengan pathlib
. Pilih metode yang paling cocok sesuai kebutuhanmu, dan kamu bisa mengelola file dengan lebih mudah dan efektif.