Začátek programu (varianty, kdy soubor je ve složce, ze které spouštíš soubor *.py)
nazev_souboru = input("Zadej název souboru ke zkopírování: ")
nazev_noveho_souboru = input("Zadej název pro nový soubor: ")
Varianta bez with
soubor = open(nazev_souboru, mode="r", encoding='utf-8')
novy_soubor = open(nazev_noveho_souboru, mode="w", encoding='utf-8')
for text in soubor:
novy_soubor.write(text)
# NEBO
# text = soubor.read()
# novy_soubor.write(text)
print ("Soubor zkopírován.")
soubor.close()
novy_soubor.close()
Varianta s with
with open(nazev_souboru, mode="r", encoding='utf-8') as soubor:
with open(nazev_noveho_souboru, mode="w", encoding='utf-8') as novy_soubor:
novy_soubor.write(soubor.read())
print("Soubor zkopírován.")
Proč se tolik opakovat, když můžeme počet pokusů použít přímo, převést jej na řetězec a jen připojením přípony z něj udělat název souboru?
def vykresliPanacka(pocet_pokusu):
"Funkce na základě neúspěšných pokusů vypisuje obrázky, dokud hra neskončí."
if pocet_pokusu == 1:
vstup = open("1.txt", encoding='utf-8')
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 2:
vstup = open("2.txt", encoding='utf-8')
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 3:
vstup = open("3.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 4:
vstup = open("4.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 5:
vstup = open("5.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 6:
vstup = open("6.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 7:
vstup = open("7.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 8:
vstup = open("8.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
elif pocet_pokusu == 9:
vstup = open("9.txt")
obrazek = vstup.read()
print(obrazek)
else:
vstup = open("10.txt")
obrazek = vstup.read()
print(obrazek)
vstup.close()
print ("Konec hry, prohrál jsi!")
def vykresliPanacka(pocet_pokusu):
"Funkce na základě neúspěšných pokusů vypisuje obrázky, dokud hra neskončí."
with open(str(pocet_pokusu) + ".txt", encoding='utf-8') as soubor:
print(soubor.read())
Jiný způsob, kdy jsou všechny obrázky uloženy dohromady v souboru obrazky.txt
def nakresli_panacka(neuspech_pokusy):
with open("obrazky.txt", mode="r", encoding="utf-8") as soubor:
obrazky = soubor.read()
start_hledani = 0
start_index = 0
poradi_obrazku = 0
while True:
index = obrazky.index("------------------", start_hledani)
poradi_obrazku += 1
start_hledani = index + 1
if poradi_obrazku == neuspech_pokusy - 1:
start_index = index
if poradi_obrazku == neuspech_pokusy:
break
print(obrazky[start_index+19:index])
neuspech_pokusy = 10
nakresli_panacka(neuspech_pokusy)
def nahrazeni_pismene(hr_pole, slovo, pismeno):
pocatek = 0
for pocet in range(slovo.count(pismeno)):
misto = slovo.index(pismeno, pocatek)
hr_pole = hr_pole[:misto] + pismeno + hr_pole[misto + 1:]
pocatek = misto + 1
return hr_pole
slovo = "ukulele"
hr_pole = len(slovo) * "-"
pismeno = "e"
print(hr_pole)
hr_pole = nahrazeni_pismene(hr_pole, slovo, pismeno)
print(hr_pole)