diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d66f5a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +vysledek +ukazka.txt +.vscode/settings.json diff --git a/main.py b/main.py index 80616a6..7f03545 100644 --- a/main.py +++ b/main.py @@ -1,17 +1,147 @@ #!/usr/bin/env python3 ############################################################################ -# Soubor: main.py -# Datum: -# Autor: +# Soubor: main.py +# Datum: 15/11/2021 +# Autor: Ondrej Vilim ############################################################################ from random import randint, choice +import os ############################################################################ +print(""" +Zadeje volbu: +1) Chcete pracovat se souborem? +2) Chcete vygenerovat náhodný soubor?""") -def f(): - return None +volba1=int(input(""" +Zadejte číslo volby: """)) +if volba1==1: -if __name__ == "__main__": - print(f()) + print(""" + Chcete: + 1) Převést soubor na malá písmena + 2) Nahradit znak jiným znakem + 3) Statistiku jednotlivých znaků""") + + podvolba1=int(input(""" + Zadejte číslo volby: """)) + + if podvolba1==1: + soubor1=open(input(""" + Zadejte cestu k pracovnímu souboru: """),"r") + obsah=soubor1.read() + soubor2=open(input(""" + Zadejte název výstupního souboru: """),"w") + prepis=obsah.lower() + vystup=soubor2.write(prepis) + print(""" + Soubor se přepsal do cílového souboru. + + Soubor je zapsán pouze malými písmeny. + """) + + elif podvolba1==2: + + soubor1=open(input(""" + Zadejte cestu k pracovnímu souboru: """),"r") + obsah=soubor1.read() + soubor2=open(input(""" + Zadejte název výstupního souboru: """),"w") + + zmenit=input(""" + zadejte znak, který chcete změnit: """) + nahrada=input(""" + zadejte znak, kterým chcete nahrazovat první znak: """) + + if zmenit.isalpha() == True and nahrada.isalpha() == True: + done=obsah.replace(zmenit.lower(),nahrada.lower()).replace(zmenit.upper(),nahrada.upper()) #Aby nedošlo ke změně velikostí písmen, použil jsem .lower() a .upper() + vystup=soubor2.write(done) + + elif zmenit.isalpha() == True and nahrada.isalpha() == False: + done=obsah.replace(zmenit.lower(),nahrada).replace(zmenit.upper(),nahrada) + vystup=soubor2.write(done) + + else: + done=obsah.replace(zmenit,nahrada) + vystup=soubor2.write(done) + + print(""" + Znak byl úspěšně nahrazen. + """) + + elif podvolba1==3: + + soubor1 = input(""" + Zadejte cestu k pracovnímu souboru: """) + obsah = open(soubor1,"r") + soubor2 = open(input(""" + Zadejte cestu k výstupnímu souboru: """),"w") + + pismena=dict() + + while True: + znak = obsah.read(1).upper() + if znak == '': + break + elif znak in pismena.keys(): + pismena[znak] += 1 + else: + pismena[znak] = 1 + + nej = max(pismena.values()) + for znak in sorted(pismena.keys()): + if znak.isalpha(): + vystup=soubor2.write("""{1:8d}| {0} | {2} +""".format(znak, pismena[znak], 50 * pismena[znak] // nej * '*')) + + + else: + print(""" + Neplatná volba, ukončuji program!!! + """) + + + + + +elif volba1==2: + + vystupni_soubor=open(input(""" + Zadejte jméno výstupního souboru: """),"w") + samohlasky = "aeiyou" + souhlasky = "qwrtpsdfghjklzxcvbnm" + + pocet_slov=int(input(""" + Zadejte počet slov pro vygenerovaný soubor: """)) + + def gen_slov(minznak=3, maxznak=10): + vysledek = "" + pocet = randint(minznak,maxznak) + zacatek = randint(0,1) + for i in range(pocet): + if i % 2 == zacatek: + vysledek=vysledek + choice(samohlasky) + else: + vysledek = vysledek + choice(souhlasky) + return vysledek + + def gen_vet(minslov=3, maxslov=12): + vysledek="" + for i in range(randint(minslov,maxslov)): + vysledek = vysledek + gen_slov() + " " + return vysledek.capitalize()[0:-1]+"." + + vysledek=vystupni_soubor.write(gen_vet()) + + print(""" + Náhodná zpráva byla úspěšně vygenerována. + """) + + + +else: + print(""" + Neplatná volba, ukončuji program!!! + """) \ No newline at end of file diff --git a/ukazka1.txt b/ukazka1.txt new file mode 100644 index 0000000..7d6c4bf --- /dev/null +++ b/ukazka1.txt @@ -0,0 +1 @@ +AhoJ, ja jsem KAREL a Nemam co Delat zrovna nyni, jelikoz je 03:26 rano. \ No newline at end of file diff --git a/vystup b/vystup new file mode 100644 index 0000000..7a54f32 --- /dev/null +++ b/vystup @@ -0,0 +1,18 @@ + 8| A | ****************************** + 1| C | *** + 1| D | *** + 6| E | *********************** + 1| H | *** + 2| I | ******* + 5| J | ******************* + 2| K | ******* + 3| L | *********** + 3| M | *********** + 5| N | ******************* + 5| O | ******************* + 3| R | *********** + 1| S | *** + 1| T | *** + 1| V | *** + 1| Y | *** + 2| Z | *******