Membuat Direktori dengan Mudah di Python: mkdir vs makedirs

1. Pendahuluan

Dengan menggunakan Python, Anda dapat dengan mudah mengelola file dan direktori. Khususnya, membuat direktori adalah salah satu tugas paling umum untuk mengatur file, melakukan pencadangan, dan menghasilkan mereka secara otomatis. Panduan ini memberikan penjelasan terperinci tentang cara membuat direktori menggunakan modul os dan modul pathlib. Panduan ini juga mencakup pembuatan direktori secara rekursif dan penanganan kesalahan, dengan tujuan agar jelas bagi pemula Python.

2. Membuat Direktori Menggunakan os.mkdir()

Penggunaan Dasar

os.mkdir() adalah cara dasar untuk membuat satu direktori pada jalur yang ditentukan. Namun, fungsi ini memiliki keterbatasan: ia akan menghasilkan error jika direktori induk tidak ada. Sebagai contoh, kode berikut menunjukkan metode pembuatan direktori yang sederhana.

import os

# Specify the path of the directory to create
dir_path = './new_directory'

# Create the directory
os.mkdir(dir_path)

Dengan kode ini, sebuah direktori dibuat pada jalur yang ditentukan, tetapi jika sebuah direktori dengan nama yang sama sudah ada, FileExistsError akan terjadi. Ini adalah hal yang perlu diperhatikan pada os.mkdir().

Penanganan Kesalahan

Anda dapat mencegah kesalahan dengan memeriksa apakah direktori sudah ada sebelum membuatnya. Kode berikut adalah contoh cara melakukannya.

import os

# Specify the path of the directory to create
dir_path = './new_directory'

# Check whether the directory exists
if not os.path.exists(dir_path):
    os.mkdir(dir_path)
else:
    print(f"The directory '{dir_path}' already exists.")

Dengan metode ini, Anda dapat menghindari kesalahan yang terjadi ketika secara tidak sengaja mencoba membuat direktori yang sudah ada.

3. Pembuatan Direktori Rekursif Menggunakan os.makedirs()

Pembuatan Direktori Rekursif

os.makedirs() dapat dianggap sebagai superset dari os.mkdir(). Karena dapat membuat beberapa tingkat direktori sekaligus, ia dapat membuat direktori perantara bahkan ketika direktori induk tidak ada.

import os

# Path including intermediate directories
dir_path = './parent_directory/sub_directory'

# Create directories recursively
os.makedirs(dir_path)

Dalam contoh ini, parent_directory dan sub_directory-nya dibuat sekaligus. Fakta bahwa semua direktori dapat dibuat tanpa error meskipun direktori perantara tidak ada menunjukkan tingkat kenyamanan yang tinggi.

Penanganan Kesalahan Menggunakan exist_ok=True

os.makedirs() memiliki opsi exist_ok, yang memungkinkan proses berlanjut tanpa menghasilkan error meskipun direktori sudah ada.

import os

dir_path = './parent_directory/sub_directory'

# Do not raise an error even if the directory already exists
os.makedirs(dir_path, exist_ok=True)

Dengan metode ini tidak lagi diperlukan pemeriksaan sebelumnya apakah direktori sudah ada, sehingga penanganan kesalahan menjadi lebih sederhana.

4. Membuat Direktori dengan Modul pathlib

Membuat Direktori Menggunakan Objek Path

Mod pathlib adalah modul yang nyaman untuk melakukan operasi jalur sistem file yang tersedia sejak Python 3.4. Objek Path() meningkatkan keterbacaan kode.

from pathlib import Path

# Specify the directory path
dir_path = Path('./new_directory')

# Create the directory
dir_path.mkdir()

Keunggulan pathlib adalah memungkinkan manipulasi jalur berorientasi objek, sehingga kode menjadi lebih intuitif.

Pembuatan Direktori Rekursif dan Penanganan Kesalahan

Bahkan ketika menggunakan pathlib untuk pembuatan direktori secara rekursif, hal ini dapat dilakukan dengan mudah hanya dengan menentukan sebuah opsi.

from pathlib import Path

# Path including intermediate directories
dir_path = Path('./parent_directory/sub_directory')

# Create including intermediate directories
dir_path.mkdir(parents=True, exist_ok=True)

Dalam kode ini, beberapa tingkat direktori, termasuk yang perantara, dibuat sekaligus dan tidak terjadi error jika direktori sudah ada.

5. Memeriksa Keberadaan Direktori dan Penanganan Kesalahan

Memverifikasi apakah sebuah direktori sudah ada merupakan bagian mendasar dari penanganan kesalahan. Modul os dan pathlib untuk memeriksa keberadaan direktori dan melakukan operasi direktori secara aman.

Metode Pemeriksaan Menggunakan Modul os

import os

dir_path = './new_directory'

if os.path.exists(dir_path):
    print(f"Directory '{dir_path}' already exists.")
else:
    print(f"Directory '{dir_path}' does not exist.")

Metode Pemeriksaan Menggunakan pathlib

from pathlib import Path

dir_path = Path('./new_directory')

if dir_path.exists():
    print(f"Directory '{dir_path}' already exists.")
else:
    print(f"Directory '{dir_path}' does not exist.")

6. Ringkasan

Dalam artikel ini, kami memberikan penjelasan rinci tentang berbagai cara membuat direktori menggunakan Python. Saya mempelajari perbedaan antara os.mkdir() dan os.makedirs(), termasuk cara menangani pembuatan direktori rekursif dan penanganan kesalahan. Selain itu, saya menemukan bahwa dengan menggunakan pathlib, modul standar yang lebih baru di Python, saya dapat menulis kode yang lebih sederhana dan mudah dibaca.

Pilih metode yang paling sesuai dengan kasus penggunaan Anda dan lakukan operasi direktori yang efisien.