ich bin absoluter python anfänger das vorweg
Ja ich weiss es gibt reichlich Lösungsansätze bezüglich meines Problems aber die gefundenen Lösungen beziehen sich auf xlsx oder win32com.client Klassen basierten Skripten.
Ich kann leider auf Grund der Aufgabenstellung keine zusätzlichen Klassen "downloaden" und verwenden.
also mein daten:
Excel Datei mit einem Tabellenblatt mit 6 Splaten mit Informationen über Postleitzahl,Adresse mit Hausnummer,Stadt,Stadtteil, Name => diese habe ich umgewandelt in Excel zu einer csv mit Leerzeichentrennung
Mein Quellcode soweit:
Code: Alles auswählen
# -*- coding: iso-8859-15 -*-
import csv
##reader = csv.DictReader(open("asd.csv", "rb"))
def csv_auslesen(Dateiname):
reader = csv.reader(open(Dateiname, "rb") , delimiter=";")
ort=[]
postcode=[]
strasse=[]
ortsteil=[]
country=[]
name=[]
for row in reader:
ort.append( row[1])
postcode.append( row[0])
strasse.append( row[2])
ortsteil.append( row[3])
country.append( row[4])
name.append( row[5])
## Um Spaltennamen zulöschen
del postcode[0]
del ort[0]
del strasse[0]
del ortsteil[0]
del country[0]
del name[0]
##for a in strasse:
## a.replace(unichr(252) ,"ue")
## a.replace(unichr(246) ,"oe")
return postcode,ort,strasse,ortsteil,country,name
Die Umlaute:
Ich habe Addressen sowohl mit "ö" "ä" als auch "ß" im Namen zb.: "Blöde Straße 4a" wie schaffe ich es das "ö" in ein oe zubekommen [oder es als "ö" zuspeichern] und dass "ß" zubehalten?
Grund ist dass ich die Ausgelesenen Daten dann wieder rum weiterreichen will und damit die Eindeutigkeit der Strasse / Straße bestehen bleibt muss ich halt diese Dinge mitschleppen
Ich habe es sowohl über # -*- coding: iso-8859-15 -*- als auch durch replace / search / match versucht aber bin gescheitert....
Teilstrings:
Meine Addressen beinhalten Informationen wie Hausnummer 112-114 ( Bsp.: "Blöde Straße 114-115") wie schaffe ich es nun nur die 114 als zahl rauszufiltern? ich habe schon geschafft nur die zahlen rauszufiltern
Code: Alles auswählen
hausnummer= filter(lambda x: x.isdigit(),strasse[i])
Code: Alles auswählen
adresse = re.findall('(()?[a-zA-Z_]+)',strasse[i],re.IGNORECASE |re.UNICODE)
Ich bin für jedliche Verbesserung und Hilfe sehr dankbar!!!
Vielen Dank