Soubory a adresáře  20. května 2019

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

Čtení souborů

0.

Napiš program, který vypíše básničku ze souboru basnicka.txt VELKÝMI PÍSMENY.

1.

Napiš program, který vypíše básničku ze souboru basnicka.txt, ale každé písmeno nahradí jiným podle následujícího slovníku:

{'a': 'ɐ', 'b': 'q', 'c': 'ɔ', 'd': 'p', 'e': 'ǝ', 'f': 'ɟ', 'g': 'ƃ',
 'h': 'ɥ', 'i': 'ᴉ', 'j': 'ɾ', 'k': 'ʞ', 'l': 'l', 'm': 'ɯ', 'n': 'u',
 'o': 'o', 'p': 'd', 'q': 'b', 'r': 'ɹ', 's': 's', 't': 'ʇ', 'u': 'n',
 'v': 'ʌ', 'w': 'ʍ', 'x': 'x', 'y': 'ʎ', 'z': 'z', 'A': '∀', 'B': 'B',
 'C': 'Ɔ', 'D': 'D', 'E': 'Ǝ', 'F': 'Ⅎ', 'G': 'פ', 'H': 'H', 'I': 'I',
 'J': 'ſ', 'K': 'ʞ', 'L': '˥', 'M': 'W', 'N': 'N', 'O': 'O', 'P': 'Ԁ',
 'Q': 'Q', 'R': 'R', 'S': 'S', 'T': '┴', 'U': '∩', 'V': 'Λ', 'W': 'M',
 'X': 'X', 'Y': '⅄', 'Z': 'Z', '0': '0', '1': 'Ɩ', '2': 'ᄅ', '3': 'Ɛ',
 '4': 'ㄣ', '5': 'ϛ', '6': '9', '7': 'ㄥ', '8': '8', '9': '6', ',': "'",
 '.': '˙', '?': '¿', '!': '¡', '"': '„', "'": ',', '`': ',', '(': ')',
 ')': '(', '[': ']', ']': '[', '{': '}', '}': '{', '<': '>', '>': '<',
 '&': '⅋', '_': '‾'}

Znaky, které ve slovníku nejsou, program vypíše nezměněné.

Nepovinný bonus: Každý řádek navíc vypiš pozpátku (od posledního písmena). (Který typ sekvencí umíš obrátit?)

Využij soubory a formát JSON pro ukládání informací v programech, které už máš hotové.

2.

Vyber si jednu hru, kterou už máš naprogramovanou. Zhruba podle náročnosti:

  1. Piškvorky
  2. Šibenice
  3. Solitaire

Po každém tahu hru hráče ulož: stav převeď na JSON a ulož do souboru stav.json.

3.

Při spuštění programu načti uložený stav se souboru. Tedy:

  • Na začátku hry:
  • pokud existuje soubor stav.json:
    • přečti ho a nastav podle něj stav hry,
    • soubor smaž.
  • Jinak hru začni normálně.
5.

Nepovinný složitý úkol:

Počítej ve hře skóre (jak, to je na tobě). Udržuj soubor s deseti nejlepšími výsledky:

  • Na začátku hry načti a vypiš tabulku nejlepších výsledků.
  • Vyhraje-li někdo, a je-li mezi deseti nejlepšími, zeptej se ho na jméno a ulož.

Tenhle úkol schválně nemá jasné zadání. Detaily doplň dle svého uvážení.

Soubory a cesty

6.

Co znamená cesta: .?

7.

Co znamená tato cesta ..?

8.

Co znamená cesta pyladies/03/funkce.py?

Kdy/kde bude tahle cesta označovat soubor funkce.py z třetí lekce tohoto kurzu?

9.

Co znamená cesta /home/pviktori/pyladies/03/funkce.py?

Kdy/kde bude tahle cesta označovat soubor funkce.py z třetí lekce tohoto kurzu?

10.

Nepovinný rekurzivní úkol:

Velikost souboru můžeš z cesty cesta_k_souboru (třídy pathlib.Path) získat následujícím (trochu nepřehledným) způsobem:

cesta_k_souboru.stat().st_size

Napiš program, který spočítá a vypíše celkovou velikost všech normálních souborů v aktuálním adresáři a všech podadresářích.