Manejo de caracteres no ASCII, preservación de espacios y puntos
Cuando se trabaja con archivos de texto, a menudo es necesario eliminar caracteres no ASCII mientras preservando entidades específicas como espacios y períodos. El código Python proporcionado filtra correctamente los caracteres que no son ASCII, pero también elimina inadvertidamente espacios y puntos.
Para solucionar este problema, debemos modificar la función onlyascii() para excluir explícitamente espacios y puntos del proceso de filtrado. . Aquí hay una versión actualizada:
def onlyascii(char):
if char == ' ' or char == '.':
return char
elif ord(char) 127:
return ''
else:
return char
En esta función onlyascii() revisada, verificamos si el carácter es un espacio (' ') o un punto ('.') y lo devolvemos si es así. Esta modificación garantiza que estas entidades se retengan en la cadena filtrada.
Para utilizar la función onlyascii() actualizada, podemos modificar la función get_my_string() para filtrar caracteres usando esta función:
def get_my_string(file_path):
f = open(file_path, 'r')
data = f.read()
f.close()
filtered_data = filter(onlyascii, data)
filtered_data = filtered_data.lower()
return ''.join(filtered_data)
El método join() se utiliza para concatenar los caracteres del iterable devuelto por la función filter(), lo que da como resultado una cadena.
Al implementar estos modificaciones, puede eliminar caracteres que no sean ASCII y al mismo tiempo conservar espacios y puntos en su cadena de texto, atendiendo a los requisitos específicos de su proyecto.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3