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
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
pass
|
||||
|
||||
c = Class3() #gewünschter Fehler
|
||||
|
|
@ -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)+'
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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