Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1575/14246
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3 # Soubor: 20120228-Tue-soubory.py
4 # Datum: 28.02.2012 08:22
5 # Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
6 # Licence: GNU/GPL
7 # Úloha: práce se soubory
8 # Popis:
9 ###################################################3
10
11 import random, sys
12 import locale
13 locale.setlocale(locale.LC_ALL,'czech')
14
15 def prevod():
16 """Funkce převede všechna písmena v soboru na malá"""
17 try:
18 # otevřu:
19 inName = raw_input(">>> zadej jmého vstupního souboru: ")
20 inFile = open(inName,"r")
21 outName = raw_input(">>> zadej jmého výtupního souboru: ")
22 outFile = open(outName,"w")
23 # čtu do konce souboru
24 while True:
25 # čtu:
26 radek = inFile.readline()
27 # na konci souboru mi funkce vrátí prázdný řetězec
28 if radek == '':
29 break
30 # zapisuji
31 # radek = radek.decode('utf-8')
32 # radek = radek.upper()
33 # radek = radek.encode('utf-8')
34 outFile.write(radek.decode('utf-8').lower().encode('utf-8'))
35 outFile.write(radek.decode('utf-8').upper().encode('utf-8'))
36
37 # uzavřu soubory
38 inFile.close()
39 outFile.close()
40 except IOError:
41 print "\nERROR > Něco je špatně:"
42 print "ERROR > zkontroluj si jméno souboru a přístupová práva\n"
43
44
45 def nahrazeni():
46 """Funkce nahradí písmeno"""
47
48 znakStary = raw_input(">>> zadej znak, který se má nahradit: ")
49 znakNovy = raw_input(">>> zadej znak, kterým se má nahradit: ")
50 znakStary = '\n' if znakStary =='' else znakStary[0]
51 znakNovy = '\n' if znakStary=='' else znakNovy[0]
52 try:
53 # otevřu:
54 inName = raw_input(">>> zadej jmého vstupního souboru: ")
55 inFile = open(inName,"r")
56 outName = raw_input(">>> zadej jmého výtupního souboru: ")
57 outFile = open(outName,"w")
58 # čtu do konce souboru
59 while True:
60 # čtu:
61 znak = inFile.read(1)
62 # na konci souboru mi funkce vrátí prázdný řetězec
63 if znak == '':
64 break
65 # zapisuji
66 if znak == znakStary:
67 outFile.write(znakNovy)
68 else:
69 outFile.write(znak)
70
71 # uzavřu soubory
72 inFile.close()
73 outFile.close()
74 except IOError:
75 print "\nERROR > Něco je špatně:"
76 print "ERROR > zkontroluj si jméno souboru a přístupová práva\n"
77
78
79 def nahodnyText(pocetSlov):
80 samohlasky = 'aeiyou'
81 souhlasky ='qwrtpsdfghjklzxcvbnm'
82
83 for i in range(pocetSlov):
84 #jedno slovo
85 delkaSlova = random.randint(1,8)
86 zacatek = random.randint(0,1) # zacinam samohlaskou nebo souhlaskou?
87 for i in range(delkaSlova):
88 if i % 2 == zacatek: # ztrida se samohlaska a souhlaska
89 sys.stdout.write(souhlasky[ random.randint(0, 19) ] )
90 else:
91 sys.stdout.write(samohlasky[ random.randint(0, 5) ] )
92 sys.stdout.write(' ')
93 sys.stdout.write('\n\n')
94
95
96
97 ###################################################
98 # menu
99
100 while True:
101 print "1) Převod na malá písmena"
102 print "2) Nahrazení znaků"
103 print "3) Statistika souboru "
104 print "4) Generování náhodného textu"
105 print "5) Konec"
106 try:
107 volba = int(raw_input("1-5> "))
108 if volba == 1:
109 prevod()
110 elif volba == 2:
111 nahrazeni()
112 elif volba == 3:
113 statistika()
114 elif volba == 4:
115 nahodnyText(40)
116 elif volba == 5:
117 exit(0)
118 else:
119 print "\n>>>> Zadej číslo od 1 do 5\n"
120 except ValueError:
121 print "\n>>>> Zadej číslo od 1 do 5\n"
122 except EOFError:
123 exit(0)
124
125