1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Python Toolbox

Connected

Cvičení

Psaní generátoru pro načítání dat po částech (2)

V předchozím cvičení jsi zpracoval/a soubor řádek po řádku pro zadaný počet řádků. Co kdybys ale chtěl/a zpracovat celý soubor?

V takovém případě se hodí použít generátory. Generátory umožňují líné vyhodnocování dat. Koncept líného vyhodnocování je užitečný při práci s velmi velkými datasety — umožňuje generovat hodnoty efektivně tím, že v každém okamžiku vrátí jen část dat, nikoli vše najednou.

V tomto cvičení definuješ generátorovou funkci read_large_file(), která vytvoří generátorový objekt vracející při každém volání next() jeden řádek ze souboru. CSV soubor 'world_dev_ind.csv' máš k dispozici v aktuálním adresáři.

Měj na paměti, že když otevřeš spojení se souborem, vzniklý souborový objekt je již sám o sobě generátor! V praxi tedy nemusíš generátorové objekty v takových případech vytvářet explicitně. Pro procvičení si to ale v tomto cvičení vyzkoušíš právě s funkcí read_large_file(). Jdeme na to!

Pokyny

100 XP
  • Ve funkci read_large_file() načti řádek z file_object pomocí metody readline(). Výsledek přiřaď do proměnné data.
  • Ve funkci read_large_file() vrať načtený řádek data pomocí příkazu yield.
  • V kontextovém manažeru vytvoř generátorový objekt gen_file voláním své generátorové funkce read_large_file() a předáním file jako argumentu.
  • Pomocí next() vytiskni první tři řádky vrácené generátorovým objektem gen_file.