Python: método eficiente para reemplazar los acentos (é a e), eliminar [^ a-zA-Z \ d \ s] y menor () [duplicar]
Esta pregunta ya tiene una respuesta aquí:
¿Cuál es la mejor manera de eliminar los acentos en una cadena Unicode de Python? 9 respuestasUtilizando Python 3.3. Quiero hacer lo siguiente:
reemplace los caracteres alfabéticos especiales como e agudo (é) y o circunflejo (ô) con el carácter base (ô a o, por ejemplo)eliminar todos los caracteres excepto los alfanuméricos y los espacios entre los caracteres alfanuméricosconvertir a minúsculasEsto es lo que tengo hasta ahora:
mystring_modified = mystring.replace('\u00E9', 'e').replace('\u00F4', 'o').lower()
alphnumspace = re.compile(r"[^a-zA-Z\d\s]")
mystring_modified = alphnumspace.sub('', mystring_modified)
¿Cómo puedo mejorar esto? La eficiencia es una gran preocupación, especialmente porque actualmente estoy realizando las operaciones dentro de un bucle:
# Pseudocode
for mystring in myfile:
mystring_modified = # operations described above
mylist.append(mystring_modified)
Los archivos en cuestión tienen aproximadamente 200,000 caracteres cada uno.