Alles funktioniert.

main
Filip Cavar 2023-01-16 22:33:29 +01:00
parent d9c8019ba3
commit 0a6a8df2ca
9 changed files with 6101 additions and 258 deletions

View File

@ -1,4 +1,5 @@
Mauriziö Nette,"Zahnweg 0,82505 Querfurt",1913-12-28,05768 401245
Name,Adresse,GebDatum,Telefon
Maurizio Nette,"Zahnweg 0,82505 Querfurt",1913-12-28,05768 401245
Traute Eimer,"Klaus-Werner-Kramer-Straße 87,21837 Lübben",1918-02-04,(06315) 47866
Veronika Gnatz,"Hüseyin-Gertz-Ring 20,92058 Bernburg",2012-09-25,(01069) 36743
Ing. Charlotte Sölzer,"Heinz-Werner-Huhn-Platz 595,11363 Gifhorn",1964-08-09,01764 90195

View File

@ -1,3 +0,0 @@
Dr. Mauriziö-Peter Nette,"Zahnweg 0,82505 Querfurt",1913-12-28,05768 401245
Traute Eimer,"Klaus-Werner-Kramer-Straße 87,21837 Lübben",1918-02-04,(06315) 47866
Univ.Prof. Veronika Gnatz,"Hüseyin-Gertz-Ring 20,92058 Bernburg",2012-09-25,(01069) 36743

File diff suppressed because it is too large Load Diff

View File

@ -7,5 +7,3 @@ class Class2(Class1):
class Class3(Class1, Class2):
pass
c = Class3() #gewünschter Fehler

View File

@ -1,7 +1,6 @@
#Aufgabe 2
import re
s1 = 'If the the problem is textual, use the the re module'
s1 = 'If the the problem is textual, use the the re module'
pattern = r'\b(\w+)( \1\b)+'

View File

@ -1,105 +1,123 @@
#Aufgabe 3
import codecs
import re
titel_pattern = r'([A-Z][a-zäüöß]+\.-?)+'
name_pattern = r'[A-Z][a-zäüöß]+([\s-]?[A-Z][a-zäüöß]+)+'
vorname_pattern = r'[A-Z][a-zäüöß]+'
zweitname_pattern = r'(-{1}[A-Z][a-zäüöß]+)+'
nachname_pattern = r'\s{1}[A-Z][a-z]+'
geburtstag_pattern = r'\d{4}-\d{2}-\d{2}'
adresse_pattern = r'[A-Z][a-zäüöß]+(\s{1}\d+\,\d+\s{1}\w+)'
strasse_pattern = r'[A-Z][a-zäüöß]+\s{1}'
vorname_pattern = r'[A-Z][a-zäüöß]+[\s-]'
zweitname_pattern = r'(-[A-Z][a-zäüöß]+)+\s'
nachname_pattern = r'\s[A-Z][a-zäüöß]+$'
straße_pattern = r'([A-Z][a-zäüöß]+[\s-]?)+'
hausnummer_pattern = r'\s{1}\d+'
plz_pattern = r'\d{5}'
wohnort_pattern = r'\s{1}[A-Z][a-z]+'
"""titel = ''
name = ''
vorname = ''
zweitname = ''
nachname = ''
geburtstag = ''
adresse = ''
straße = ''
hausnummer = ''
plz = ''
wohnort = ''"""
wohnort_pattern = r'(\s[A-Z][a-zäüöß]+)+'
counter = 0
#Datei einlesen ab 2.Zeile
f1 = codecs.open('Personen.txt', 'r', 'utf-8')
lines = f1.readlines()[1:]
f1.close()
#Datei zum Schreiben öffnen
with open('PersonenNeu.json', 'w') as f2:
#Array öffnen
f2.write('[\n')
#Datei zeilenweise einlesen und auswerten
with open('Personen2.txt', 'r') as f1:
for line in f1:
print(counter, ':', line)
#Titel, vollen Namen, volle Adresse & Geburtsdatum auslesen
titel = re.search(titel_pattern, line)
name = re.search(name_pattern, line)
adresse = re.search(adresse_pattern, line)
geburtstag = re.search(geburtstag_pattern, line)
print('Titel:', titel)
print('Name:', name)
print('Adresse:', adresse)
print('Geburtstag:', geburtstag)
f2.write('[')
#Daten zeilenweise einlesen und auswerten
for line in lines:
entry = line.split(',')
print(entry[0])
print(entry[1])
print(entry[2])
print(entry[3])
print(entry[4])
geburtstag = entry[3]
print(counter, ':', line)
#Daten aufteilen & umwandeln
#vollen Namen aufteilen in Vor-, Zweit- & Nachnamen
if name is not None:
vorname = re.search(vorname_pattern, name.group(0))
print('Vorname:', vorname)
zweitname = re.search(zweitname_pattern, name.group(0))
print('Zweitname:', zweitname)
nachname = re.search(nachname_pattern, name.group(0))
print('Nachname:', nachname)
#Titel
titel = re.search(titel_pattern, entry[0])
print(titel)
# Titel setzen, falls vorhanden
if titel is not None:
titel = titel.group(0)
print(titel)
#- und Leerzeichen entfernen und match entnehmen
if vorname is not None:
vorname = vorname.group(0)
if zweitname is not None:
zweitname = re.sub('-', '', zweitname.group(0))
if nachname is not None:
nachname = re.sub(' ', '', nachname.group(0))
#Geburtstag umwandeln
if geburtstag is not None:
geburtstag = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3.\2.\1', geburtstag.group(0))
#Vorname
vorname = re.search(vorname_pattern, entry[0])
print(vorname)
#volle Adresse aufteilen in Straße, Hausnummer, PLZ & Wohnort & umwandeln
if adresse is not None:
straße = re.search(strasse_pattern, adresse.group(0))
straße = re.sub(' ', '', straße.group(0))
hausnummer = re.search(hausnummer_pattern, adresse.group(0))
hausnummer = re.sub(' ', '', hausnummer.group(0))
plz = re.search(plz_pattern, adresse.group(0))
plz = plz.group(0)
wohnort = re.search(wohnort_pattern, adresse.group(0))
wohnort = re.sub(' ', '', wohnort.group(0))
#Zweitname
zweitname = re.search(zweitname_pattern, entry[0])
print(zweitname)
#Titel setzen, falls vorhanden
if titel is not None:
titel = titel.group(0)
#Nachname
nachname = re.search(nachname_pattern, entry[0])
print(nachname)
#Im JSON Format eintragen
if (name is not None) and (name != 'Name') and (geburtstag is not None) and (adresse is not None):
f2.write("{\n"
"'Index': %i,\n"
"'Titel':['%s'],\n"
"'Vorname':['%s'],\n"
"'Zweitname':['%s'],\n"
"'Nachname':['%s'],\n"
"'Geburtsdatum':['%s'],\n"
"'Straße':['%s'],\n"
"'Hausnummer':['%s'],\n"
"'PLZ':['%s'],\n"
"'Wohnort':['%s'],\n"
"},\n"
% (counter, titel, vorname, zweitname, nachname, geburtstag,
straße, hausnummer, plz, wohnort)
)
counter += 1
#- und Leerzeichen entfernen und match entnehmen
if vorname is not None:
vorname = re.sub('-', '', vorname.group(0), 1)
print(vorname)
if zweitname is not None:
zweitname = re.sub('-', '', zweitname.group(0), 1)
print(zweitname)
zweitname = re.sub(' ', '', zweitname)
print(zweitname)
if nachname is not None:
nachname = re.sub(' ', '', nachname.group(0), 1)
print(nachname)
#Array schließen
f2.write(']')
#Geburtstag setzen & umwandeln
geburtstag = entry[3]
print(geburtstag)
if geburtstag is not None:
geburtstag = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3.\2.\1', geburtstag)
print(geburtstag)
#Straße
straße = re.search(straße_pattern, entry[1])
print(straße)
straße = re.sub(' ', '', straße.group(0))
print(straße)
#Hausnummer
hausnummer = re.search(hausnummer_pattern, entry[1])
print(hausnummer)
hausnummer = re.sub(' ', '', hausnummer.group(0), 1)
print(hausnummer)
#PLZ
plz = re.search(plz_pattern, entry[2])
print(plz)
plz = plz.group(0)
print(plz)
#Wohnort
wohnort = re.search(wohnort_pattern, entry[2])
print(wohnort)
wohnort = re.sub(' ', '', wohnort.group(0), 1)
print(wohnort)
#Im JSON Format eintragen
f2.write("{\n"
"'Index': %i,\n"
"'Titel': ['%s'],\n"
"'Vorname': ['%s'],\n"
"'Zweitname': ['%s'],\n"
"'Nachname': ['%s'],\n"
"'Geburtsdatum': ['%s'],\n"
"'Straße': ['%s'],\n"
"'Hausnummer': ['%s'],\n"
"'PLZ': ['%s'],\n"
"'Wohnort': ['%s']\n"
% (counter, titel, vorname, zweitname, nachname, geburtstag,
straße, hausnummer, plz, wohnort)
)
if counter < (len(lines) - 1):
f2.write("},\n")
#Array schließen
else:
f2.write("}\n]")
counter += 1

View File

@ -1,113 +0,0 @@
#Aufgabe 3
import re
titel_pattern = r'([A-Z][a-zäüöß]+\.-?)+'
name_pattern = r'[A-Z][a-zäüöß]+'
vorname_pattern = r'[A-Z][a-zäüöß]+'
zweitname_pattern = r'(-{1}[A-Z][a-zäüöß]+)+'
nachname_pattern = r'\s{1}[A-Z][a-z]+'
geburtstag_pattern = r'\d{4}-\d{2}-\d{2}'
adresse_pattern = r'[A-Z][a-zäüöß]+(\s{1}\d+\,\d+\s{1}\w+)'
strasse_pattern = r'[A-Z][a-zäüöß]+\s{1}'
hausnummer_pattern = r'\s{1}\d+'
plz_pattern = r'\d{5}'
wohnort_pattern = r'\s{1}[A-Z][a-z]+'
"""titel = ''
name = ''
vorname = ''
zweitname = ''
nachname = ''
geburtstag = ''
adresse = ''
straße = ''
hausnummer = ''
plz = ''
wohnort = ''"""
counter = 0
#Datei zum Schreiben öffnen
with open('PersonenNeu.json', 'w') as f2:
#Array öffnen
f2.write('[')
#Datei zeilenweise einlesen und auswerten
with open('Personen2.txt', 'r') as f1:
for line in f1:
print(counter, ':', line)
"""line = line.replace('Ä', 'Ae')
line = line.replace('Ö', 'Oe')
line = line.replace('Ü', 'Ue')
line = line.replace('ä', 'ae')
line = line.replace('ö', 'oe')
line = line.replace('ü', 'ue')
line = line.replace('ß', 'ss')"""
#Titel, vollen Namen, volle Adresse & Geburtsdatum auslesen
titel = re.search(titel_pattern, line)
name = re.search(name_pattern, line)
adresse = re.search(adresse_pattern, line)
geburtstag = re.search(geburtstag_pattern, line)
print('Titel:', titel)
print('Name:', name)
print('Adresse:', adresse)
print('Geburtstag:', geburtstag)
#Daten aufteilen & umwandeln
#vollen Namen aufteilen in Vor-, Zweit- & Nachnamen
if name is not None:
vorname = re.search(vorname_pattern, name.group(0))
print('Vorname:', vorname)
zweitname = re.search(zweitname_pattern, name.group(0))
print('Zweitname:', zweitname)
nachname = re.search(nachname_pattern, name.group(0))
print('Nachname:', nachname)
#- und Leerzeichen entfernen und match entnehmen
if vorname is not None:
vorname = vorname.group(0)
if zweitname is not None:
zweitname = re.sub('-', '', zweitname.group(0))
if nachname is not None:
nachname = re.sub(' ', '', nachname.group(0))
#Geburtstag umwandeln
if geburtstag is not None:
geburtstag = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3.\2.\1', geburtstag.group(0))
#volle Adresse aufteilen in Straße, Hausnummer, PLZ & Wohnort & umwandeln
if adresse is not None:
straße = re.search(strasse_pattern, adresse.group(0))
straße = re.sub(' ', '', straße.group(0))
hausnummer = re.search(hausnummer_pattern, adresse.group(0))
hausnummer = re.sub(' ', '', hausnummer.group(0))
plz = re.search(plz_pattern, adresse.group(0))
plz = plz.group(0)
wohnort = re.search(wohnort_pattern, adresse.group(0))
wohnort = re.sub(' ', '', wohnort.group(0))
#Titel setzen, falls vorhanden
if titel is not None:
titel = titel.group(0)
#Im JSON Format eintragen
if (name is not None) and (name != 'Name') and (geburtstag is not None) and (adresse is not None):
f2.write("{\n"
"'Index': %i,\n"
"'Titel':['%s'],\n"
"'Vorname':['%s'],\n"
"'Zweitname':['%s'],\n"
"'Nachname':['%s'],\n"
"'Geburtsdatum':['%s'],\n"
"'Straße':['%s'],\n"
"'Hausnummer':['%s'],\n"
"'PLZ':['%s'],\n"
"'Wohnort':['%s'],\n"
"},\n"
% (counter, titel, vorname, zweitname, nachname, geburtstag,
straße, hausnummer, plz, wohnort)
)
counter += 1
#Array schließen
f2.write(']')

View File

@ -1,32 +0,0 @@
import re
s1 = 'Zahnwäg 0,82505 Querfurt'
wohnort_pattern = r'[A-Z][a-z]+'
a = re.search(wohnort_pattern, s1)
print(a)
s1 = s1.replace('Ä', 'Ae')
s1 = s1.replace('Ö', 'Oe')
s1 = s1.replace('Ü', 'Ue')
s1 = s1.replace('ä', 'ae')
s1 = s1.replace('ö', 'oe')
s1 = s1.replace('ü', 'ue')
s1 = s1.replace('ß', 'ss')
a = re.search(wohnort_pattern, s1)
print(a)
"""with open('Personen.txt', 'r') as f1:
for line in f1:
print(line)
zeile = line.replace('Ä', 'Ae')
zeile = zeile.replace('Ö', 'Oe')
zeile = zeile.replace('Ü', 'Ue')
zeile = zeile.replace('ä', 'ae')
zeile = zeile.replace('ö', 'oe')
zeile = zeile.replace('ü', 'ue')
zeile = zeile.replace('ß', 'ss')
print(zeile)
"""

BIN
S2.pdf

Binary file not shown.