From efe8e3a3040f91a299e81cc644f15957d2f2fd79 Mon Sep 17 00:00:00 2001 From: KubMakCZ Date: Wed, 3 Dec 2025 11:58:27 +0100 Subject: [PATCH] lib update --- 17_knihovny.py | 9 ++++ lib_16a_soubory.py | 103 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 17_knihovny.py create mode 100644 lib_16a_soubory.py diff --git a/17_knihovny.py b/17_knihovny.py new file mode 100644 index 0000000..03e405f --- /dev/null +++ b/17_knihovny.py @@ -0,0 +1,9 @@ +import lib_16a_soubory + +tsoubor = "vypis_knihvona.txt" +lib_16a_soubory.vytvor_soubor(tsoubor,"Vypis") +for i in range(10): + if i == 7 or i == 3: + lib_16a_soubory.pridej_do_souboru(tsoubor,f"Test{i}",False) + continue + lib_16a_soubory.pridej_do_souboru(tsoubor,f"Test{i}") diff --git a/lib_16a_soubory.py b/lib_16a_soubory.py new file mode 100644 index 0000000..7242b5e --- /dev/null +++ b/lib_16a_soubory.py @@ -0,0 +1,103 @@ +import os +import datetime +import time + +def oddelovac(): + print("\n"+"="*50) + +def vytvor_soubor(nazev, obsah, novy_radek=True): + """ + Vytvoří nový soubor a zapíše do něj + Args: + nazev (str): Název souboru + obsah (str): Text k zapsání + novy_radek (bool): True na přídání "ukončení řádku" na konec zprávy + Returns: + bool: True pokud je soubor úspěšně zapsán, False pokud ne + """ + try: + with open(nazev, mode="w", encoding="utf-8") as soubor: + soubor.write(obsah) + if novy_radek: + soubor.write("\n") + print(f"Soubor {nazev} byl vytvořen") + return True + except Exception as e: + print(f"chyba při vytváření: {e}") + return False + +def precti_soubor(nazev): + """ + Přečte obsah souboru a vrátí ho jako string + Args: + nazev (str): název souboru + Returns: + str: Obsah souboru, nebo None pokud soubor neexistuje + """ + try: + with open(nazev,mode="r",encoding="utf-8") as soubor: + obsah = soubor.read() + print(f"Soubor {nazev} byl úspěšně přečten") + return obsah + except FileNotFoundError: + print(f"Soubor {nazev} neexistuje") + return None + except Exception as e: + print(f" chyba při čtení souboru: {e}") + return None + +def pridej_do_souboru(nazev, text, novy_radek=True): + """ + Přída textž na konec existujícího souboru. + Args: + nazev (str): Název soubvoru + text (str): Text k přídání + novy_radek (bool): True na přídání "ukončení řádku" na konec zprávy + + Returns: + bool: True pokud se podařilo, False pokud ne + """ + try: + with open(nazev, mode="a",encoding="utf-8") as soubor: + soubor.write(text) + if novy_radek: + soubor.write("\n") + print(f"Text byl přidán do souboru {nazev}") + return True + except Exception as e: + print(f"chyba při přídávání textu: {e}") + return False + +def existuje_soubor(nazev): + """ + Zkontroluje jestli soubor existuje + Args: + nazev (str): název souboru + Returns: + bool: True pokud existuje + """ + return os.path.exists(nazev) + +def vypis_info_o_souboru(nazev): + """ + Vypíše informace o souboru + Args: nazev (str):název souboru + """ + print(f"infomrace o {nazev}") + if not existuje_soubor(nazev): + print("Soubor neexistuje, nelze vypsat info") + return + print("Soubor existuje ☺") + velikost = os.path.getsize(nazev) + print(f"Velikost: {velikost} bajtů") + cas_upravy = os.path.getmtime(nazev) + datum = datetime.datetime.fromtimestamp(cas_upravy) + print(f"Poslední úprava: {datum.strftime('%d.%m.%Y %H:%M:%S')}") + + +if __name__ == "__main__": + vytvor_soubor("textak.txt","TOTO JE TEST") + obsah_souboru = precti_soubor("textak.txt") + print(f"obsah souboru: {obsah_souboru}") + vypis_info_o_souboru("textak.txt") +