Python: Madaling lumikha ng direktoryo | mkdir vs makedirs

1. Panimula

Sa paggamit ng Python, madali mong mapamamahalaan ang mga file at direktoryo. Lalo na ang paglikha ng direktoryo ay isa sa mga madalas na ginagawa para sa pag-aayos ng mga file, backup, at awtomatikong pagbuo. Sa gabay na ito, detalyadong ipapaliwanag kung paano lumikha ng mga direktoryo gamit ang module na os at module na pathlib. Tatalakayin din ang recursive na paglikha ng direktoryo at error handling, at layunin naming gawing madaling maintindihan para sa mga baguhang Python.

2. Paggawa ng Direktoryo gamit ang os.mkdir()

Pangunahing Paggamit

os.mkdir() ay pangunahing paraan para lumikha ng isang direktoryo sa tinukoy na landas. Gayunpaman, may limitasyon ang function na ito; kung walang magulang na direktoryo, magdudulot ito ng error. Halimbawa, ang sumusunod na code ay simpleng paraan ng paglikha ng direktoryo.

import os

# Tukuyin ang landas ng direktoryong gagawin
dir_path = './new_directory'

# Gumawa ng direktoryo
os.mkdir(dir_path)

Sa code na ito, nililikha ang direktoryo sa tinukoy na landas, ngunit kung may umiiral nang direktoryo na may parehong pangalan, magaganap ang FileExistsError. Ito ang isa sa mga dapat tandaan sa os.mkdir().

Error Handling

Maari mong maiwasan ang error sa pamamagitan ng pagsuri kung umiiral na ang direktoryo bago ito likhain. Ang sumusunod na code ay isang konkretong halimbawa.

import os

# Tukuyin ang landas ng direktoryong gagawin
dir_path = './new_directory'

# Suriin kung umiiral ang direktoryo
if not os.path.exists(dir_path):
    os.mkdir(dir_path)
else:
    print(f"Ang direktoryo '{dir_path}' ay umiiral na.")

Sa pamamaraang ito, maiiwasan mo ang error na nangyayari kapag sinusubukang muling likhain ang isang umiiral na direktoryo.

侍エンジニア塾

3. Paggamit ng os.makedirs() para sa recursive na paglikha ng direktoryo

Recursive na Paglikha ng Direktoryo

os.makedirs() ay maaaring ituring na mas mataas na bersyon ng os.mkdir(). Dahil maaaring lumikha ng maraming antas ng direktoryo nang sabay-sabay, posible ring lumikha ng mga intermediate na direktoryo kahit na ang parent directory ay wala.

import os

# Path na naglalaman ng intermediate na direktoryo
dir_path = './parent_directory/sub_directory'

# Lumikha ng direktoryo nang rekursibo
os.makedirs(dir_path)

Sa halimbawang ito, ang parent_directory at ang sub_directory sa loob nito ay nilikha nang sabay. Ipinapakita nito ang mataas na kaginhawahan dahil kahit na walang intermediate na direktoryo, maaaring likhain ang lahat ng direktoryo nang hindi nagkakaroon ng error.

Error handling gamit ang exist_ok=True

os.makedirs() ay may option na exist_ok, na nagpapahintulot na magpatuloy ang proseso nang hindi nagbubunga ng error kahit na ang direktoryo ay umiiral na.

import os

dir_path = './parent_directory/sub_directory'

# Hindi magiging sanhi ng error kahit na umiiral na ang direktoryo
os.makedirs(dir_path, exist_ok=True)

Sa paggamit ng pamamaraang ito, maiiwasan ang abala ng pag-check kung umiiral ang direktoryo nang pauna, kaya pinapasimple ang error handling.

4. Paglikha ng Direktoryo gamit ang pathlib module

Paglikha ng Direktoryo gamit ang Path object

pathlib Ang pathlib module ay isang maginhawang module para sa pag-manipula ng mga path ng file system na magagamit mula Python 3.4 pataas.Path() Sa paggamit ng Path() object, tataas din ang nababasa ng code.

from pathlib import Path

# Tukuyin ang path ng direktoryo
dir_path = Path('./new_directory')

# Lumikha ng direktoryo
dir_path.mkdir()

pathlib Ang benepisyo ng pathlib ay ang kakayahang magsagawa ng object-oriented na pag-manipula ng mga path, na nagpapataas ng pagiging intuitive ng code.

Recursive na Paglikha ng Direktoryo at Error Handling

pathlib Kahit kapag gumagamit ng pathlib para sa recursive na paglikha ng direktoryo, madali itong magagawa sa pamamagitan lamang ng pagtukoy ng mga opsyon.

from pathlib import Path

# Path na naglalaman ng intermediate na direktoryo
dir_path = Path('./parent_directory/sub_directory')

# Lumikha kasama ang intermediate na direktoryo
dir_path.mkdir(parents=True, exist_ok=True)

Sa code na ito, ang maraming antas ng mga direktoryo kasama ang mga intermediate na direktoryo ay nililikha nang sabay-sabay, at hindi mag-eerror kahit na may umiiral nang direktoryo.

5. Pag-verify ng Pag-iral ng Direktoryo at Paghawak ng Error

Ang pag-verify kung ang direktoryo ay umiiral na ay batayan ng paghawak ng error.os mga module at pathlib gamit ito upang i-verify ang pag-iral ng direktoryo, at ligtas na magsagawa ng mga operasyon sa direktoryo.

Pamamaraan ng Pag-verify gamit ang os module

import os

dir_path = './new_directory'

if os.path.exists(dir_path):
    print(f"Ang direktoryo '{dir_path}' ay umiiral na.")
else:
    print(f"Ang direktoryo '{dir_path}' ay hindi umiiral.")

Pamamaraan ng Pag-verify gamit ang pathlib

from pathlib import Path

dir_path = Path('./new_directory')

if dir_path.exists():
    print(f"Ang direktoryo '{dir_path}' ay umiiral na.")
else:
    print(f"Ang direktoryo '{dir_path}' ay hindi umiiral.")

6. Buod

Sa artikulong ito, detalyado naming ipinaliwanag ang iba’t ibang paraan ng paglikha ng mga direktoryo gamit ang Python.os.mkdir() at os.makedirs(), naintindihan mo ang pagkakaiba, at natutunan mo rin ang paglikha ng mga rekursibong direktoryo at paghawak ng mga error. Dagdag pa rito, nalaman namin na sa pamamagitan ng paggamit ng bagong standard na module ng Python na pathlib, makakagawa ng mas simple at mas nababasang code.

Pumili ng pinakaangkop na paraan ayon sa iyong pangangailangan at magsagawa ng epektibong pag-manipula ng mga direktoryo.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール