Remoção seletiva de caracteres não ASCII
Trabalhar com dados textuais geralmente envolve a necessidade de remover caracteres não ASCII, preservando certos símbolos como espaços e períodos. Embora os métodos básicos de filtragem possam remover todos os caracteres não-ASCII, isso pode não ser desejável em alguns casos.
Vamos considerar o seguinte código:
def onlyascii(char):
if ord(char) 127: return ''
else: return char
Este código remove todos os caracteres com valores ASCII menores que 48 ou maiores que 127, eliminando efetivamente o texto de caracteres não ASCII. No entanto, ele também remove espaços (ASCII 32) e pontos (ASCII 46).
Para remover seletivamente caracteres não-ASCII enquanto preserva espaços e pontos, podemos aproveitar o módulo string.printable do Python:
import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)
O conjunto string.printable contém todos os caracteres imprimíveis no sistema, incluindo dígitos, letras, símbolos, espaços e pontos. Usando este conjunto como filtro, podemos remover todos os caracteres não imprimíveis da string.
Por exemplo, se tivermos a string "some\x00string. with\x15 caracteres engraçados":
s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))
O resultado será:
'somestring. with funny characters'
Este método remove efetivamente caracteres não ASCII enquanto preserva espaços e pontos, fornecendo uma string limpa para processamento posterior.
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