Tratando caracteres não-ASCII, preservando espaços e pontos
Ao lidar com arquivos de texto, muitas vezes é necessário remover caracteres não-ASCII enquanto preservando entidades específicas como espaços e períodos. O código Python fornecido filtra com êxito caracteres não ASCII, mas inadvertidamente também remove espaços e pontos.
Para resolver esse problema, precisamos modificar a função onlyascii() para excluir explicitamente espaços e pontos do processo de filtragem . Aqui está uma versão atualizada:
def onlyascii(char):
if char == ' ' or char == '.':
return char
elif ord(char) 127:
return ''
else:
return char
Nesta função onlyascii() revisada, verificamos se o caractere é um espaço (' ') ou um ponto final ('.') e o retornamos se for o caso. Esta modificação garante que essas entidades sejam retidas na string filtrada.
Para utilizar a função onlyascii() atualizada, podemos modificar a função get_my_string() para filtrar caracteres usando esta função:
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)
O método join() é usado para concatenar os caracteres do iterável retornado pela função filter(), resultando em uma string.
Ao implementar estes modificações, você pode remover caracteres não ASCII enquanto preserva espaços e pontos em sua string de texto, atendendo aos requisitos específicos do seu projeto.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3