fajlkezeles.py
1    # inicializálás (kezdőállapot kialakítása)
2    # GLOBÁLIS ADATOK
3    #az input01.txt esetben egy sorban egy adat ----> "sima" lista: ehhez kell az adatok lista
4    #az input02.txt esetben egy sorban több, de ugyanolyan típusú adat ----> "sima" mátrix (listák listája):
5    #  ehhez kell a matrix lista
6    #az input03.txt esetben egy sorban több és különböző típusú adat ----> "vegyes" mátrix (listák listája):
7    #  ehhez kell a vegyes_matrix lista
8    adatok = []
9    matrix = []
10   vegyes_matrix = []
11   szotar=dict()  # {}
12   
13   def beolvasas01():
14       # "klasszikus" megoldás:
15       fbe = open('input01.txt', 'r')
16   
17       for sor in fbe:
18           sor = int(sor.strip())
19           adatok.append(sor)
20       print('"Klasszikusan" készülő lista:\n', adatok)
21       fbe.close()
22   
23       print('********************************************************')
24   
25       # "gyors" vagy "rövid" megoldás:
26       adatok2 = [int(elem.strip()) for elem in open('input01.txt', 'r').readlines()]
27       print('"Gyorsan" készülő lista:\n', adatok2)
28   
29       print('********************************************************')
30       print('********************************************************')
31   
32   def beolvasas02():
33       # "klasszikus" megoldás:
34       fbe = open('input02.txt', 'r')
35   
36       for sor in fbe:
37           sor = sor.strip().split()
38           sor = list(map(int, sor))
39           matrix.append(sor)
40   
41       print('"Klasszikusan" készülő mátrix:\n', matrix)
42   
43       fbe.close()
44   
45       print('********************************************************')
46   
47       # "gyors" vagy "rövid" megoldás:
48       matrix2 = [list(map(int, sor.strip().split())) for sor in open('input02.txt', 'r').readlines()]
49       print('"Gyorsan" készülő mátrix:\n', matrix2)
50   
51       print('********************************************************')
52       print('********************************************************')
53   
54   def beolvasas03():
55       # "klasszikus" megoldás:
56       fbe = open('input03.txt', 'r')
57   
58       for sor in fbe:
59           sor = sor.strip().split()
60           for i in range(len(sor)):
61               if sor[i].isdigit():
62                   sor[i] = int(sor[i])
63           vegyes_matrix.append(sor)
64   
65       print('"Klasszikusan" készülő "vegyes" mátrix:\n', vegyes_matrix)
66   
67       fbe.close()
68   
69       print('********************************************************')
70   
71       # "gyors" vagy "rövid" megoldás:
72       matrix_temp = [sor.strip().split() for sor in open('input03.txt', 'r').readlines()]
73       vegyes_matrix2 = [[int(matrix_temp[i][j]) if matrix_temp[i][j].isdigit() else matrix_temp[i][j] for j in
74                          range(len(matrix_temp[i]))] for i in range(len(matrix_temp))]
75       print('"Gyorsan" készülő "vegyes" mátrix:\n', vegyes_matrix2)
76   
77   def beolvasas04():
78       # "klasszikus" megoldás:
79       fbe = open('input04.txt', 'r')
80       
81       keys=set()
82       temp=[]
83       for sor in fbe:
84               
85           sor=sor.strip().split()
86           
87           if sor[0] in keys:
88               temp.append(sor[1:])
89               szotar[sor[0]]=temp
90           else:
91               temp=[]
92               temp.append(sor[1:])
93               szotar[sor[0]]=temp
94               keys.add(sor[0])
95       
96       fbe.close()
97       
98       print('"Klasszikusan" készülő "szótár":\n', szotar)
99     
100  #----------------------------------------------------------------------------
101  
102  beolvasas01()  #önálló parancs, olyan mintha a Pythont megtanítottuk volna vmire
103  beolvasas02()
104  beolvasas03()
105  beolvasas04()
106