====== 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()'' ([[https://docs.python.org/3/library/os.html?highlight=listdir#os.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 [[https://docs.python.org/3/library/os.html?highlight=listdir#os.scandir|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()'' ([[https://docs.python.org/3/library/pathlib.html?highlight=iterdir#pathlib.Path.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 [[https://miguendes.me/python-pathlib|pathlib tutorialu]].