Alles funktioniert.
parent
d9c8019ba3
commit
0a6a8df2ca
|
|
@ -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
|
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
|
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
|
Ing. Charlotte Sölzer,"Heinz-Werner-Huhn-Platz 595,11363 Gifhorn",1964-08-09,01764 90195
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -7,5 +7,3 @@ class Class2(Class1):
|
||||||
|
|
||||||
class Class3(Class1, Class2):
|
class Class3(Class1, Class2):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
c = Class3() #gewünschter Fehler
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
#Aufgabe 2
|
#Aufgabe 2
|
||||||
import re
|
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'
|
s1 = 'If the the problem is textual, use the the re module'
|
||||||
pattern = r'\b(\w+)( \1\b)+'
|
pattern = r'\b(\w+)( \1\b)+'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,105 +1,123 @@
|
||||||
#Aufgabe 3
|
#Aufgabe 3
|
||||||
|
import codecs
|
||||||
import re
|
import re
|
||||||
|
|
||||||
titel_pattern = r'([A-Z][a-zäüöß]+\.-?)+'
|
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äüöß]+[\s-]'
|
||||||
vorname_pattern = r'[A-Z][a-zäüöß]+'
|
zweitname_pattern = r'(-[A-Z][a-zäüöß]+)+\s'
|
||||||
zweitname_pattern = r'(-{1}[A-Z][a-zäüöß]+)+'
|
nachname_pattern = r'\s[A-Z][a-zäüöß]+$'
|
||||||
nachname_pattern = r'\s{1}[A-Z][a-z]+'
|
straße_pattern = r'([A-Z][a-zäüöß]+[\s-]?)+'
|
||||||
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+'
|
hausnummer_pattern = r'\s{1}\d+'
|
||||||
plz_pattern = r'\d{5}'
|
plz_pattern = r'\d{5}'
|
||||||
wohnort_pattern = r'\s{1}[A-Z][a-z]+'
|
wohnort_pattern = r'(\s[A-Z][a-zäüöß]+)+'
|
||||||
|
|
||||||
"""titel = ''
|
|
||||||
name = ''
|
|
||||||
vorname = ''
|
|
||||||
zweitname = ''
|
|
||||||
nachname = ''
|
|
||||||
geburtstag = ''
|
|
||||||
adresse = ''
|
|
||||||
straße = ''
|
|
||||||
hausnummer = ''
|
|
||||||
plz = ''
|
|
||||||
wohnort = ''"""
|
|
||||||
|
|
||||||
counter = 0
|
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
|
#Datei zum Schreiben öffnen
|
||||||
with open('PersonenNeu.json', 'w') as f2:
|
with open('PersonenNeu.json', 'w') as f2:
|
||||||
#Array öffnen
|
#Array öffnen
|
||||||
f2.write('[\n')
|
f2.write('[')
|
||||||
#Datei zeilenweise einlesen und auswerten
|
#Daten zeilenweise einlesen und auswerten
|
||||||
with open('Personen2.txt', 'r') as f1:
|
for line in lines:
|
||||||
for line in f1:
|
entry = line.split(',')
|
||||||
print(counter, ':', line)
|
print(entry[0])
|
||||||
#Titel, vollen Namen, volle Adresse & Geburtsdatum auslesen
|
print(entry[1])
|
||||||
titel = re.search(titel_pattern, line)
|
print(entry[2])
|
||||||
name = re.search(name_pattern, line)
|
print(entry[3])
|
||||||
adresse = re.search(adresse_pattern, line)
|
print(entry[4])
|
||||||
geburtstag = re.search(geburtstag_pattern, line)
|
geburtstag = entry[3]
|
||||||
print('Titel:', titel)
|
print(counter, ':', line)
|
||||||
print('Name:', name)
|
|
||||||
print('Adresse:', adresse)
|
|
||||||
print('Geburtstag:', geburtstag)
|
|
||||||
|
|
||||||
#Daten aufteilen & umwandeln
|
#Titel
|
||||||
#vollen Namen aufteilen in Vor-, Zweit- & Nachnamen
|
titel = re.search(titel_pattern, entry[0])
|
||||||
if name is not None:
|
print(titel)
|
||||||
vorname = re.search(vorname_pattern, name.group(0))
|
# Titel setzen, falls vorhanden
|
||||||
print('Vorname:', vorname)
|
if titel is not None:
|
||||||
zweitname = re.search(zweitname_pattern, name.group(0))
|
titel = titel.group(0)
|
||||||
print('Zweitname:', zweitname)
|
print(titel)
|
||||||
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
|
#Vorname
|
||||||
if geburtstag is not None:
|
vorname = re.search(vorname_pattern, entry[0])
|
||||||
geburtstag = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3.\2.\1', geburtstag.group(0))
|
print(vorname)
|
||||||
|
|
||||||
#volle Adresse aufteilen in Straße, Hausnummer, PLZ & Wohnort & umwandeln
|
#Zweitname
|
||||||
if adresse is not None:
|
zweitname = re.search(zweitname_pattern, entry[0])
|
||||||
straße = re.search(strasse_pattern, adresse.group(0))
|
print(zweitname)
|
||||||
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
|
#Nachname
|
||||||
if titel is not None:
|
nachname = re.search(nachname_pattern, entry[0])
|
||||||
titel = titel.group(0)
|
print(nachname)
|
||||||
|
|
||||||
#Im JSON Format eintragen
|
#- und Leerzeichen entfernen und match entnehmen
|
||||||
if (name is not None) and (name != 'Name') and (geburtstag is not None) and (adresse is not None):
|
if vorname is not None:
|
||||||
f2.write("{\n"
|
vorname = re.sub('-', '', vorname.group(0), 1)
|
||||||
"'Index': %i,\n"
|
print(vorname)
|
||||||
"'Titel':['%s'],\n"
|
if zweitname is not None:
|
||||||
"'Vorname':['%s'],\n"
|
zweitname = re.sub('-', '', zweitname.group(0), 1)
|
||||||
"'Zweitname':['%s'],\n"
|
print(zweitname)
|
||||||
"'Nachname':['%s'],\n"
|
zweitname = re.sub(' ', '', zweitname)
|
||||||
"'Geburtsdatum':['%s'],\n"
|
print(zweitname)
|
||||||
"'Straße':['%s'],\n"
|
if nachname is not None:
|
||||||
"'Hausnummer':['%s'],\n"
|
nachname = re.sub(' ', '', nachname.group(0), 1)
|
||||||
"'PLZ':['%s'],\n"
|
print(nachname)
|
||||||
"'Wohnort':['%s'],\n"
|
|
||||||
"},\n"
|
|
||||||
% (counter, titel, vorname, zweitname, nachname, geburtstag,
|
|
||||||
straße, hausnummer, plz, wohnort)
|
|
||||||
)
|
|
||||||
counter += 1
|
|
||||||
|
|
||||||
#Array schließen
|
#Geburtstag setzen & umwandeln
|
||||||
f2.write(']')
|
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
|
||||||
|
|
|
||||||
|
|
@ -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(']')
|
|
||||||
|
|
@ -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)
|
|
||||||
"""
|
|
||||||
Loading…
Reference in New Issue