pr3-skriptspr-gruppef-sl1/SL2/s2_a3.py

83 lines
2.8 KiB
Python
Raw Permalink Normal View History

2023-01-13 10:34:41 +01:00
import re
import json
#Öffnen der Datei Personen.txt zum Lesen
with open("Personen.txt", "r") as f:
persons = []
lines = f.readlines()
for i, line in enumerate(lines):
#Aufteilen der Zeile in Spalten
cols = line.split(",")
person = {
"Index": i,
"Titel": [None],
"Vorname": [],
"Zweitname": [None],
"Nachname": [],
"Geburtsdatum": [],
"Straße": [],
"Hausnummer": [],
"PLZ": [],
"Wohnort": []
}
match = re.search(r"(.*?)\.", cols[0])
if match:
name = re.sub(r"([A-Za-zäöüÄÖÜ]+).([A-Za-zäöüÄÖÜ]-+) ([A-Za-zäöüÄÖÜ]-+)(?: ([A-Za-zäöüÄÖÜ]-+))?",r"\1 \2 \3 \4", cols[0])
# Titel (optional), Vorname, Zweitname (optional) und Nachname
parts = name.split()
person["Titel"]=parts[0]
person["Vorname"] = parts[1]
if len(parts) == 3:
person["Nachname"]=parts[2]
if len(parts) == 4:
person["Zweitname"] = parts[2]
person["Nachname"] = parts[3]
else:
name = re.sub(r"([A-Za-zäöüÄÖÜ]-+) ([A-Za-zäöüÄÖÜ]-+)(?: ([A-Za-zäöüÄÖÜ]-+))?", r"\1 \2 \3", cols[0])
# Titel (optional), Vorname, Zweitname (optional) und Nachname
parts = name.split()
person["Vorname"] = parts[0]
if len(parts) == 2:
person["Nachname"] = parts[1]
if len(parts) == 4:
person["Zweitname"] = parts[1]
person["Nachname"] = parts[2]
print("Index: ", person["Index"])
print("Titel: ", person["Titel"])
print("Vorname: ", person["Vorname"])
print("Zweitname: ", person["Zweitname"])
print("NAchname: ", person["Nachname"])
#Adresse
address = re.sub(r"([^\d]+)(\d+)", r"\1 \2", cols[1])
#Straße, Hausnummer
parts = address.split()
person["Straße"] = [parts[0]]
person["Hausnummer"] = [parts[1]]
print("Straße: ", person["Straße"])
print("Hausnummer: ", person["Hausnummer"])
# Adresse
address = re.sub(r"(\d{5})([^\s]+)", r"\1 \2", cols[2])
#PLZ und Wohnort
parts = address.split()
person["PLZ"] = [parts[0]]
person["Wohnort"] = [parts[1]]
print("PLZ: ", person["PLZ"])
print("Wohnort: ", person["Wohnort"])
#Geburtstag
person["Geburtsdatum"] = re.sub(r"(\d+)-(\d+)-(\d+)", r"\3.\2.\1", cols[3])
print("Geburtstag: ", person["Geburtsdatum"])
persons.append(person)
with open("PersonenNeu.json", "w") as json_file:
json.dump(persons, json_file, indent=3, ensure_ascii=False)