Большинство официальных документов для чего-либо должны иметь только заглавные буквы и без диакритических знаков.
Это работает?
>>> import unicodedata as ud
>>> s="Ο πάνω όροφος"
>>> d = {ord('\N{COMBINING ACUTE ACCENT}'):None}
>>> ud.normalize('NFD',s).upper().translate(d)
'Ο ΠΑΝΩ ΟΡΟΦΟΣ'
Нормализация с помощью NFD отделяет базовые кодовые точки от диакритические знаки. В таблице перевода d
перечислены порядковые переводы Unicode ... в данном случае удаляются диакритические знаки c. Я не знаком с использованием греческого диакрита c, поэтому таблицу, возможно, придется расширить.
.replace('\u0301','')
можно использовать для одного акцента, но .translate()
более эффективен, если есть несколько замен.
Пропустите .upper()
, чтобы задать исходный вопрос:
>>> ud.normalize('NFD',s).translate(d)
'Ο πανω οροφος'