forked from D261324/A3-data-analyse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainProjectA3.py
147 lines (116 loc) · 4.53 KB
/
mainProjectA3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# hier onder staan alle imports
import csv
import os
from datetime import datetime
# hier onder staat alles om het csv bestand goed te kunnen gebruiken
dataFile = open("GB.csv","r")
reader = csv.DictReader(dataFile, delimiter=";")
permits = list(reader)
outInfoFile = open("outInfo.txt", "w")
# hier onder komen alle variable
averageHeightString = ""
topTen = []
permitsAfterDateString = ""
permitsInNeighborhoodString = ""
inputPassedCheck = None
# !!!!hier onder komt het menu/ hele programma te staan met alle loops en statements!!!!
running = True
while running:
os.system("cls")
print("1. Gemiddelde hoogte van afgegeven vergunningen")
print("2. Top 10 hoogste gebouwen")
print("3. Afgegeven vergunningen na 1-1-2020")
print("4. Afgegeven vergunningen voor buurt X")
print("W. Alle info naar bestand")
print("X. Afsluiten")
if inputPassedCheck == 0:
print("\nFunctie niet gevonden.")
choice = input("\nMaak uw keuze: ").lower()
inputPassedCheck = 0
if choice == "x":
os.system("cls")
inputPassedCheck = 1
print("Tot de volgende keer!")
running = False
exit()
if choice == "1" or choice == "w":
inputPassedCheck = 1
os.system("cls")
# Press 1:
totalPermits = len(permits)
totalHeight = 0.0
for permit in permits:
totalHeight += float(permit['nb_hoogte'])
averageHeight = totalHeight / totalPermits
averageHeightString = (f"Gemiddelde hoogte van alle gebouwen: {round(averageHeight, 2)} meter.")
print(f"Aantal afgegeven vergunningen: {totalPermits}")
print(f"Totale hoogte van afgegeven vergunningen: {round(totalHeight, 1)} meter")
print(averageHeightString)
# End Press 1
if choice == "2" or choice == "w":
inputPassedCheck = 1
topTen = []
os.system("cls")
# Press 2:
permits_sorted = sorted(permits, key=lambda row: float(row['nb_hoogte']), reverse=True)
for i in range(1, 11):
item = permits_sorted[i]
topTen.append(f"{i} | {item['Adres']} {item['Huisnummer']} is {item['nb_hoogte']} meter hoog")
print(f"{topTen[i-1]}")
# print("\n")
# End Press 2
if choice == "3" or choice == "w":
inputPassedCheck = 1
os.system("cls")
# Press 3
datetime_str = '1-1-2020'
datetime_object = datetime.strptime(datetime_str, '%d-%m-%Y')
permitsAfterDate = 0
for permit in permits:
if (datetime.strptime(permit['Datum_aanvraag'], '%d-%m-%Y') >= datetime_object):
permitsAfterDate += 1
permitsAfterDateString = (f"Er zijn {permitsAfterDate} vergunningen afgegeven na {datetime_str}.")
print(permitsAfterDateString)
# End Press 3
if choice == "4" or choice == "w":
inputPassedCheck = 1
os.system('cls')
# Press 4
userNeighborhood = input("Vul een buurt in: ").lower()
permitsInNeighborhood = 0
for permit in permits:
if permit["Wijk"].lower() == userNeighborhood:
permitsInNeighborhood += 1
if permitsInNeighborhood == 0:
permitsInNeighborhood = "geen"
os.system("cls")
permitsInNeighborhoodString = (f"Er zijn {permitsInNeighborhood} vergunningen afgegeven voor gebouwen in {userNeighborhood.capitalize()}.")
print(permitsInNeighborhoodString)
# End Press 4
if choice == "w":
inputPassedCheck = 1
now = datetime.now()
now = now.strftime("%d-%m-%Y %H:%M:%S")
os.system("cls")
outInfoFile.write(f"Data gegenereerd op {now}:\n")
outInfoFile.write(f"1. {averageHeightString}\n")
outInfoFile.write(f"2. Hoogste gebouwen:\n")
for item in topTen:
outInfoFile.write(f"\t{item}\n")
outInfoFile.write(f"3. {permitsAfterDateString}\n")
outInfoFile.write(f"4. {permitsInNeighborhoodString}\n")
outInfoFile.write(f"----------------------------------------\n")
print("Gegevens worden naar het bestand geschreven zodra u het programma afsluit (X).")
if inputPassedCheck != 1 and choice != "x":
print("Functie niet gevonden.")
continue
choice = input("\nDruk op enter om door te gaan of type 'X' om te stoppen: ").lower()
if choice == "x":
os.system("cls")
inputPassedCheck = 1
print("Tot de volgende keer!")
running = False
exit()
continue
outInfoFile.close()
dataFile.close()