Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Procházení obsahu adresáře

Ve svém řešení budete muset postupně procházet soubory umístěné v adresářích:

  • obrázky v adresáři s trénovacími daty (abyste se z nich dokázali něco naučit, tj. odhadnout parametry modelu) a
  • obrázky v adresáři s testovacími daty (abyste pro každý z nich mohli poskytnout predikci, jaké číslo či písmeno se na obrázku nachází).

Existuje více způsobů, jak to provést; zde uvedeme jen některé.

os.listdir()

Funkce listdir() (docs) z modulu os vrací seznam jmen souborů v zadaném adresáři. Pokud např. máme na disku následující adresář se soubory

+- train_data
   +- truth.dsv
   +- img112.png
   +- img113.png
   +- img114.png
pak skript
import os
 
for fname in os.listdir("train_data"):
    print(fname)
poskytne tento výstup:
img_1112.png
img_1113.png
img_1114.png
truth.dsv

Podobně lze použít i funkci os.scandir(), která vrací generátor.

Objektové rozhraní pomocí modulu ''pathlib''

Má-li někdo z vás raději objektovější přístup, lze podobně použít třídu Path a její metodu iterdir() (docs):

from pathlib import Path
 
path = Path("train_data")
for fpath in path.iterdir():
    print(fpath)

Po spuštění dostanete:

train_data\img_1112.png
train_data\img_1113.png
train_data\img_1114.png
train_data\truth.dsv

Generátor iterdir() vrací opět objekty třídy Path, které obalují cesty k jednotlivým souborům. Ale i tyto objekty lze použít při otevírání souborů pomocí funkce open().

Další příklady použití modulu pathlib lze nalézt v tomto pěkném pathlib tutorialu.

courses/b3b33kui/semestralni_ulohy/5_ml/listdir.txt · Last modified: 2023/04/28 17:51 by xposik