aber wie bekomme ich die deutsche Umlaute ausgetauscht
Code: Alles auswählen
name = 'Blümchenweg'
name.replace('ü', 'ue')
Danke für die Hilfe
Torsten
Code: Alles auswählen
name = 'Blümchenweg'
name.replace('ü', 'ue')
Super danke, nur "lower()" funktioniert in Python2 mit den "großen" Umlauten nicht__deets__ hat geschrieben: Mittwoch 8. April 2020, 10:06 Das funktioniert schon, aber weil Strings in Python unveraenderlich sind, musst du das Ergebnis auch zuweisen. Es wird nicht in-place gemacht.
Code: Alles auswählen
10:12 $ python3
Python 3.7.3 (default, Oct 7 2019, 12:56:13)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> s = 'ü'
>>> s.upper()
'Ü'
>>> s.upper().lower()
'ü'
Da stimmte ich mit Dir vollkommen überein. Aber ich habe das Projekt auch nur übernommen und muss mich hier leider an die Vorgaben (Python2) halten. - wer fährt schon freiwillig ein rostiges Auto?__deets__ hat geschrieben: Mittwoch 8. April 2020, 10:16 Du solltest kein Python 2 mehr benutzen, das seit dieses Jahres ungewartet. Neuer Code sollte in Python 3 geschrieben sein. Und da zumindest geht das auch fuer mich:
Code: Alles auswählen
10:12 $ python3 Python 3.7.3 (default, Oct 7 2019, 12:56:13) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> s = 'ü' >>> s.upper() 'Ü' >>> s.upper().lower() 'ü'
Code: Alles auswählen
In [1]: import icu
In [2]: transliterator = icu.Transliterator.createInstance('de-ascii; lower')
In [3]: transliterator.transliterate('Ä Ö Ü ä ö ü ß ł ŧ ø þ æ ſ ð đ ŋ ħ ĸ Ł Ŧ Ø Þ Æ ẞ Ð Ŋ Ħ')
Out[3]: 'ae oe ue ae oe ue ss l t o th ae s d d n h q l t o th ae ss d n h'
Code: Alles auswählen
table = str.maketrans({'Ä': 'Ae', 'ä': 'ae', 'Ö': 'Oe', 'ö': 'oe', 'Ü': 'Ue', 'ü': 'ue'})
print(text.translate(table))