Usuwanie znaków diakrytycznych w Pythonie
Żyjemy w czasach Unicode’u i kodowanie polskich znaków na stronach internetowych czy jakiś tekstach jest dość proste. Dla Polaków przejście z Pythona 2 na 3 przynosi chociażby łatwiejszą obsługę Unicoda i mniej bólu głowy. Jednak czasem nadal najlepszym rozwiązaniem pewnych programistycznych problemów jest zamienić polskie znaki na ASCII – chociażby w przy nadawaniu nazw plików. Po internecie krążył plik zamiany polskich znaków dla PHP, łącznie z zamianami innych przedziwnych znaczków stosowanych na Świecie. Zamieniłem go na Pythona i napisałem w bardziej pythoniczny sposób
Skrypt umieściłem jako gist na githubie: Jego pierwsza wersja zamieniała tekst na zbiór i zamieniała (wykorzystując str.replace ) tylko te znaki które w ogóle były w tekście, ale jeszcze pythoniczniejszą metodą jest skorzystanie z gotowej pary funcji str.maketrans i str.translate. Na moim komputerze funkcja removeAccents zdanie “Zażółć gęślą jaźń” zamienia na Zazolc gesla jazn w 21.1µs (22.1 µs ± 190 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each) )
Do skryptu obowiązuje licencja MIT