目次
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 modulos
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 fungsios.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 menggunakantry-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 menggunakanos.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 denganos.path.splitext()
.new_file_path = file_name + ".jpg"
print(new_file_path) # hasil: "/user/home/document/file.jpg"
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 modulglob
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.