Kontrolli, kas fail eksisteerib Pythonis: os, pathlib, glob

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.

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

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 pathlib käepärane.
  • Mustri‑põhiste otsingute jaoks on glob moodul 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.

年収訴求