"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como preservar espaços e pontos ao remover caracteres não ASCII em arquivos de texto Python?

Como preservar espaços e pontos ao remover caracteres não ASCII em arquivos de texto Python?

Publicado em 2024-11-08
Navegar:901

How to Preserve Spaces and Periods While Removing Non-ASCII Characters in Python Text Files?

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.

Declaração de lançamento Este artigo foi reimpresso em: 1729340957 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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