Cara Dapatkan Nama File di Python dengan os & pathlib

1. Pendahuluan

Python sangat fleksibel dalam hal operasi file, dan dapat mengotomatiskan banyak tugas dengan kode yang sederhana. Artikel ini akan memperkenalkan beberapa cara untuk mendapatkan nama file menggunakan Python. Secara khusus, kami akan membahas modul os dan pathlib, yang merupakan bagian dari pustaka standar. Dengan membaca artikel ini, Anda akan memperoleh keterampilan untuk mengelola file dalam direktori secara efisien, serta membuat skrip yang mengambil dan memfilter nama file.

2. Dasar Cara Mengambil Nama File di Python

Pertama, kita mulai dengan metode dasar untuk mendapatkan nama file di Python. Dengan menggunakan fungsi os.path.basename(), Anda dapat mengambil nama file dari path yang ditentukan.

2.1 os.path.basename() Cara Menggunakan

os.path.basename() adalah fungsi yang mengambil hanya nama file dari path lengkap. Pada contoh berikut, nama file diekstrak dari path file.
import os

file_path = "/user/home/document/file.txt"
file_name = os.path.basename(file_path)
print(file_name)  # hasil: "file.txt"

2.2 os.path.dirname() Mengambil Nama Direktori

Demikian pula, dengan menggunakan os.path.dirname(), Anda dapat mengambil nama direktori dari path file. Ini memungkinkan pemisahan dan pengambilan nama file serta nama direktori.
dir_name = os.path.dirname(file_path)
print(dir_name)  # hasil: "/user/home/document"
年収訴求

3. Mengambil Semua Nama File dalam Direktori

Untuk mengambil semua file dan folder dalam direktori dalam bentuk daftar, os.listdir() sangat berguna. Selain itu, untuk mengambil file dalam subdirektori secara rekursif, os.walk() sangat membantu.

3.1 os.listdir() Mengambil Nama File dengan os.listdir()

os.listdir()Dengan menggunakan os.listdir(), Anda dapat memperoleh semua file dan folder dalam direktori yang ditentukan dalam bentuk daftar. Ini sangat cocok untuk operasi direktori sederhana.
import os

dir_path = "/user/home/document"
files = os.listdir(dir_path)
print(files)  # hasil: ["file1.txt", "file2.txt", "subfolder"]

3.2 os.walk() Mengambil Nama File Secara Rekursif dengan os.walk()

Jika Anda ingin mengambil file secara rekursif termasuk subdirektori, menggunakan os.walk() adalah yang paling efektif. Kode berikut menampilkan semua file yang ada di direktori yang ditentukan dan subdirektorinya.
import os

dir_path = "/user/home/document"
for root, dirs, files in os.walk(dir_path):
    for file in files:
        print(os.path.join(root, file))

3.3 Menambahkan Penanganan Error

Jika direktori tidak ada atau tidak memiliki hak akses, kemungkinan akan terjadi error. Oleh karena itu, disarankan untuk menambahkan penanganan pengecualian menggunakan try-except.
dir_path = "/invalid/path"
try:
    files = os.listdir(dir_path)
    print(files)
except FileNotFoundError:
    print(f"{dir_path} tidak ditemukan.")

4. Mengambil dan Mengubah Ekstensi

Saat mengambil nama file, kadang perlu mengoperasikan ekstensi. Dengan menggunakan os.path.splitext(), Anda dapat memisahkan atau mengubah ekstensi.

4.1 os.path.splitext() Mengambil ekstensi

os.path.splitext() adalah fungsi yang mengembalikan nama file dan ekstensi secara terpisah.
import os

file_path = "/user/home/document/file.txt"
file_name, file_ext = os.path.splitext(file_path)
print(file_name)  # hasil: "/user/home/document/file"
print(file_ext)   # hasil: ".txt"

4.2 Mengubah ekstensi

Saat mengubah ekstensi, tambahkan ekstensi baru ke nama file yang diperoleh dengan os.path.splitext().
new_file_path = file_name + ".jpg"
print(new_file_path)  # hasil: "/user/home/document/file.jpg"
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. Penerapan Pengambilan Nama File dengan Modul pathlib

Mulai dari Python 3.4, modul pathlib sangat berguna untuk mengelola jalur file. pathlib memungkinkan manipulasi jalur file dengan cara berorientasi objek, sehingga lebih intuitif digunakan.

5.1 Pengambilan Nama File dengan Path.iterdir()

Dengan menggunakan metode iterdir() pada pathlib.Path(), Anda dapat memperoleh nama file dan folder dalam direktori yang ditentukan.
from pathlib import Path

dir_path = Path("/user/home/document")
for item in dir_path.iterdir():
    print(item.name)

5.2 Pengambilan File Secara Rekursif: rglob()

Jika ingin mengambil nama file secara rekursif termasuk subdirektori, gunakan metode rglob(). Metode ini juga dapat digunakan sebagai alternatif os.walk().
for file in dir_path.rglob("*"):
    print(file)

6. Penyaringan Nama File

Jika Anda ingin mengambil hanya nama file yang memenuhi kondisi tertentu, Anda dapat melakukan penyaringan menggunakan modul glob atau metode glob() dari pathlib.

6.1 Penyaringan Berdasarkan Ekstensi

Untuk mengambil hanya file dengan ekstensi tertentu, gunakan wildcard *.
from pathlib import Path

dir_path = Path("/user/home/document")
for file in dir_path.glob("*.txt"):
    print(file)
Kode ini mengambil hanya file .txt dalam direktori yang ditentukan.

7. Ringkasan

Ada banyak cara untuk mendapatkan nama file menggunakan Python, tetapi penting untuk memilih metode yang tepat sesuai kebutuhan. os modul dasar hingga fitur lanjutan pathlib dapat dimanfaatkan untuk memproses file dalam direktori secara efisien. Pada pertemuan berikutnya, kami akan memberikan informasi tentang aplikasi operasi file, seperti mengganti nama, memindahkan, dan menghapus file.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール