1. Miks kontrollida faili olemasolu Pythonis
Sissejuhatus
Faili olemasolu kontrollimine on oluline programmi stabiilsuse parandamiseks. Näiteks andmete lugemise või kirjutamise korral tekib viga ja programmi täitmine peatub, kui sihtfaili ei ole olemas. Pythonis on mitu viisi faili olemasolu kontrollimiseks ning on oluline valida konkreetsele olukorrale kõige sobivam meetod.
See artikkel tutvustab failide kontrollimise meetodeid, kasutades os moodulit, pathlib moodulit ja glob moodulit, ning selgitab iga lähenemise eeliseid.
2. Põhiline lähenemine: os moodul
Kuidas kasutada os.path.exists()
os.path.exists() kasutatakse selleks, et kontrollida, kas määratud tee eksisteerib faili või kataloogina. See funktsioon tagastab True, kui see eksisteerib, ja False, kui ei eksisteeri.
import os
if os.path.exists("example.txt"):
print("The file exists")
else:
print("The file does not exist")
See kood kontrollib, kas example.txt on olemas, ja kuvab tulemuse põhjal sõnumi. os.path.exists() on üldine meetod, mis suudab kontrollida nii faile kui ka katalooge.
Valimine os.path.isfile() ja os.path.isdir() vahel
os.path.exists() ei erista faile ja katalooge, kuid os.path.isfile() või os.path.isdir() kasutamine võimaldab kindlaks teha, kas siht on fail või kataloog.
if os.path.isfile("example.txt"):
print("This is a file")
elif os.path.isdir("example.txt"):
print("This is a directory")
else:
print("It does not exist")
Sel viisil, pärast sihi olemasolu kinnitamist, võimaldab selle faili‑ või kataloogiks olemise kindlaksmääramine teha täpsemaid toiminguid.

3. Täiustatud: pathlib moodul
Path.exists() meetodi kasutamine
pathlib abil saate kasutada Path.exists() meetodit, et kontrollida, kas fail või kataloog on olemas. Nagu os.path.exists(), tagastab see True või False, kuid kood muutub lühemaks.
from pathlib import Path
file_path = Path("example.txt")
if file_path.exists():
print("The file exists")
else:
print("The file does not exist")
Selle lähenemisega käsitletakse failiteed Path objektina, seega on kood kirjutatud objektorienteeritud viisil ja seda on lihtsam hooldada.
Path.is_file() ja Path.is_dir()
pathlib pakub ka is_file() ja is_dir() meetodeid, mis võimaldavad hõlpsasti eristada, kas tegemist on failiga või kataloogiga.
if file_path.is_file():
print("This is a file")
elif file_path.is_dir():
print("This is a directory")
Seega, kasutades pathlib-i, saate mitte ainult kontrollida faili olemasolu, vaid ka lihtsalt kindlaks teha, kas siht on fail või kataloog.
Reaalses olukorras
pathlib on eriti kasulik projektides, mis manipuleerivad mitme kataloogi ja failiga. See võimaldab kirjutada keerukaid teede operatsioone lihtsalt ning kuna sama kood töötab erinevatel platvormidel, on see ideaalne ristplatvormilisele arendusele.
4. Faili olemasolu kontrollimine Pythonis: kuidas kasutada glob moodulit
Mustri sobitamine glob-iga
glob moodul võimaldab otsida faile failinime või tee mustrite alusel, mis on mugav, kui soovite korraga kontrollida kõiki teatud kriteeriumitele vastavaid faile. See on eriti tõhus olukordades, kus on tegemist suurte failide hulgaga.
import glob
files = glob.glob('*.txt')
if files:
print("Text files found")
else:
print("No text files found")
Selles koodis hangime kõik .txt failid, mis asuvad praeguses kataloogis, loendina ja kontrollime nende olemasolu. Kuna saate faile massiliselt otsida kindlate failitüüpide või mustrite alusel, on see kasulik varukoopiate ja sarnaste ülesannete haldamisel.
Reaalses olukorras
glob sobib, kui töötate suurte failide või kaustade hulgaga või kui peate tõhusalt töötlema failide, mis vastavad kindlatele nimedele või laienditele. Näiteks on see ideaalne ülesannetele, mis regulaarselt kontrollivad ja haldavad logifaile või ajutisi faile.
5. Turvalised failitoimingud erandite käitlemisega
Samuti on oluline kasutada erandite käitlemist, et vältida vigu, kui fail ei eksisteeri. Kasutades try-except süntaksit, saate vältida programmi peatumist vigade tõttu ja kuvada kasutajale veateate.
try:
with open("example.txt") as f:
print(f.read())
except FileNotFoundError:
print("The file does not exist")
Selles koodis, kui fail ei eksisteeri, püüab see FileNotFoundErrori ja kuvab veateate ilma programmi kokkujooksmata. See parandab kasutajakogemust ja suurendab programmi stabiilsust.
6. Kokkuvõte
Faili olemasolu kontrollimiseks Pythoni keeles on olemas mitmesugused lähenemised, nagu os moodul, pathlib moodul ja glob moodul. Igal meetodil on oma eelised sõltuvalt olukorrast ning on oluline valida sobivaim.
- Lihtsate olemasolu kontrollide jaoks on optimaalselt
os.path.exists(). - Kui on vaja keerukat teekonna manipuleerimist või platvormidevahelist tuge, on
pathlibkäepärane. - Mustri‑põhiste otsingute jaoks on
globmoodul tõhus.
Mõistes ja kasutades neid meetodeid õigesti, saate Pythoni abil failitoiminguid teha tõhusalt ja turvaliselt. Järgmise sammuna soovitame õppida failide lugemist, kirjutamist, kustutamist ja kopeerimist.





