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

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/cviceni/strojove_uceni/listdir.txt · Last modified: 2022/05/02 15:45 by xposik