目次
1. Kausta loomise põhiline meetod Pythonis
Pythonis on olemas lihtne viis kaustade loomiseks, kasutades standardraamatukogu. Peamiselt kasutatakseos
moodulit. Selles sektsioonis selgitame üksikasjalikult os
mooduli abil kausta loomise meetodit.Kausta loomise meetod Pythonis: os moodul
os
mooduli kasutamisega saab programmis kausta luua. See on kasulik näiteks andmete korraldamiseks või logide salvestamiseks mõeldud kataloogi loomiseks. Põhiline kausta loomise meetod on järgmine.import os
# Määra loodava kausta tee
path = 'example_folder'
# Loo kaust
os.mkdir(path)
Selles koodis kasutatakse os.mkdir()
funktsiooni uue kausta “example_folder” loomiseks. Kuid see funktsioon tekitab FileExistsError
juhul, kui kaust juba eksisteerib.Mitmekihiliste kaustade loomine: os.makedirs()
Kui soovite luua mitte ainult üksik kaust, vaid ka mitmekihilisi katalooge korraga, kasutageos.makedirs()
funktsiooni.import os
# Määra mitmekihiline kaust
path = 'example_folder/subfolder'
# Loo kaust isegi siis, kui vanemkataloog ei eksisteeri
os.makedirs(path)
Nii, kasutades os.makedirs()
, saab määratud teel puuduvad vanemkataloogid samuti korraga luua. See võimaldab kaustastruktuuri korraga luua, mis on mugav.Vea käsitlemine: exist_ok=True kasutamine
Kui kaust juba eksisteerib, kuid soovite vältida vea teket ja jätkata töötlemist, kasutageexist_ok=True
valikut. Nagu alljärgnevas näites, ei teki viga isegi kui kaust on olemas.import os
path = 'example_folder/subfolder'
# Ignoreeri viga isegi siis, kui kaust juba eksisteerib
os.makedirs(path, exist_ok=True)
See võimaldab, et isegi kui programm käivitub korduvalt ja püüab luua sama kausta, ei teki viga, mis võimaldab kirjutada vastupidavat koodi.2. Kaustade loomine Pathlib mooduli abil
Alates Python 3.4 onpathlib
moodul lisatud standardraamatukogusse. See moodul võimaldab objektorienteeritud viisil tegeleda teedega ning võimaldab intuitiivselt kaustu luua. Siin selgitame, kuidas pathlib
moodulit kasutades kaustu luua.Pathlib mooduli kasutamine
pathlib.Path()
kasutades on võimalik katalooge luua. Nagu os
mooduliga, saab exist_ok=True
määrata, et olemasoleva kausta korral ei tekiks viga.from pathlib import Path
# Määra kausta tee, mida soovid luua
path = Path('example_folder/subfolder')
# Loo kaust
path.mkdir(parents=True, exist_ok=True)
Selles koodis määrates parents=True
, luuakse ka vanemkataloog, kui see ei eksisteeri. Sellega saavutatakse sama käitumine nagu os.makedirs()
.Pathlib mooduli eelised
pathlib
mooduli suur eelis on, et see võimaldab objektorienteeritud operatsioone. Path
objekti kasutades saab lisaks kaustade loomisele ka teede ühendamist ja failide töötlemist teha intuitiivselt. See parandab koodi loetavust ja hooldatavust.3. Kataloogide loomise veahaldamine
Kataloogi loomisel võib tekkida mitmesuguseid vigu. Näiteks kui puuduvad õigused või määratud tee on kehtetu. Selles sektsioonis selgitame, kuidas rakendada veahaldust.Õiguste vead ja kehtetute teede käsitlemine
os.makedirs()
või pathlib.Path().mkdir()
kasutamisel kataloogi loomisel tekivad tavapärased vead, nagu PermissionError
ja FileNotFoundError
. Nende vigade korrektne käsitlemine võimaldab luua vastupidavama programmi. Allpool on veahaldamise näide.import os
path = 'example_folder/subfolder'
try:
os.makedirs(path, exist_ok=True)
print(f'Kataloog "{path}" loodi.')
except PermissionError:
print('Kataloogi loomiseks puuduvad õigused.')
except FileNotFoundError:
print('Määratud tee on kehtetu.')
except Exception as e:
print(f'Tekkis ootamatu viga: {e}')
Selles koodis näidatakse iga tavapärase vea käsitlemist ning ka ootamatutele vigadele reageerimist. See tagab, et programm ei katkesta töö ja vead töödeldakse korrektselt.Täiustatud veahaldus
Kataloogi loomise ebaõnnestumise olukordades tuleks kaaluda vigade sisu logimise ja kasutajale teavitamise võimalust. Eriti suurtes rakendustes mõjutab veahaldus kasutajakogemust märkimisväärselt, seega on vajalik põhjalik lähenemine.
4. Kaustade kustutamise meetod
Lisaks kaustade loomisele on sageli vaja kustutada kaustad, mida enam ei vajata. Pythonis saab standardraamatukoguos
moodulit või shutil
moodulit kasutada kaustade kustutamiseks. Siin selgitame konkreetseid meetodeid.os.rmdir() kasutades kausta kustutamine
os
moodulis on funktsioon rmdir()
, millega saab kausta kustutada. Kuid see funktsioon nõuab, et kustutatav kaust oleks tühi.import os
# Määrake kustutatava kausta tee
path = 'example_folder/subfolder'
# Kustuta kaust
os.rmdir(path)
See kood töötab õigesti ainult siis, kui määratud kaust on tühi. Kui kaustas on faile või teisi katalooge, tekib OSError
.shutil.rmtree() kasutades kausta rekursiivne kustutamine
Kui kaustas on faile või teisi alamkaustu, saabshutil
mooduli rmtree()
funktsiooni abil kausta ja selle sisu rekursiivselt kustutada.import shutil
# Määrake kustutatava kausta tee
path = 'example_folder/subfolder'
# Kustuta kaust ja selle sisu
shutil.rmtree(path)
See meetod võimaldab kausta kustutada ka siis, kui kataloog ei ole tühi, mistõttu on see kasulik kogu kataloogipuude kustutamisel. Kuid kustutatud faile ja kaustu ei saa taastada, seega tuleb olla ettevaatlik.Vea käsitlemine
Kausta kustutamisel on samuti oluline vigade käsitlemine. Näiteks tekib viga, kui puuduvad õigused kausta kustutamiseks või kui määratud tee on kehtetu. Allpool on näide koodist, mis sisaldab veahaldust.import shutil
path = 'example_folder/subfolder'
try:
shutil.rmtree(path)
print(f'Kaust "{path}" on kustutatud.')
except PermissionError:
print('Kausta kustutamiseks puuduvad õigused.')
except FileNotFoundError:
print('Määratud kausta ei leitud.')
except Exception as e:
print(f'Tekkis ootamatu viga: {e}')
See kood käsitleb kustutamise ajal tekkivaid vigu ja suudab paindlikult reageerida ka ootamatutele vigadele.5. Tegelikud rakendusjuhtumid
Siin tutvustame rakendusjuhtumeid, mis kombineerivad kaustade loomist ja kustutamist ning on kasulikud tegelikes projektides ja andmetöötluses. Eriti eeldame juhtumeid, kus aastaste või kuude andmeid korraldatakse kaustade kaupa.Kaustade loomine aasta ja kuu kaupa
Näiteks, kui soovite andmeid korraldada aastate või kuude kaupa, saate luua skripti, mis loob kaustad automaatselt.import os
from datetime import datetime
# Praeguse aasta ja kuu hankimine
current_year = datetime.now().year
current_month = datetime.now().month
# Kausta tee määramine
folder_path = f'data/{current_year}/{current_month}'
# Kausta loomine
os.makedirs(folder_path, exist_ok=True)
print(f'Kaust "{folder_path}" on loodud.')
See skript loob automaatselt kaustad praeguse aasta ja kuu põhjal ning aitab andmeid tõhusalt korraldada.Kaustade massiline kustutamine
Kui soovite teatud tingimuste alusel mittevajalikke kaustu korraga kustutada, saate Pythoniga seda tõhusalt teha. Näiteks on võimalik luua skript, mis kustutab vanad andmekaustad, mis on teatud ajaperioodi üle.import shutil
import os
from datetime import datetime, timedelta
# 30 päeva tagasi oleva kuupäeva hankimine
threshold_date = datetime.now() - timedelta(days=30)
# Kustutatavate kaustade baasrada
base_path = 'data/'
# Kaustade kontrollimine ja vanade kaustade kustutamine
for folder_name in os.listdir(base_path):
folder_path = os.path.join(base_path, folder_name)
if os.path.isdir(folder_path):
folder_date = datetime.strptime(folder_name, '%Y-%m-%d')
if folder_date < threshold_date:
shutil.rmtree(folder_path)
print(f'Vana kaust "{folder_path}" on kustutatud.')
Sellistes rakendusjuhtudes saab programmi abil kaustade haldamise ja korraldamise automatiseerida, vähendades käsitsi tehtavaid toiminguid.6. Kokkuvõte
Selles artiklis selgitati, kuidas Pythoniga kaustu luua ja kustutada.os
-moodulit ja pathlib
-moodulit kasutades tutvustasime laialdaselt põhilisi toiminguid, alates kausta loomise veahaldusest kuni tegelike rakendusteni. Nende teadmiste kasutamisega saate luua programme, mis haldavad andmeid ja faile tõhusalt. Järgmise sammuna on soovitatav õppida ka kõrgema taseme andmehalduse tehnikaid, nagu failide töötlemine ja pakkimine, lisaks kausta loomisele ja kustutamisele.