Maison >développement back-end >Tutoriel Python >Comment filtrer les caractères non-ASCII tout en préservant les espaces et les points en Python ?

Comment filtrer les caractères non-ASCII tout en préservant les espaces et les points en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 20:33:29566parcourir

How to Filter Non-ASCII Characters While Preserving Spaces and Periods in Python?

Suppression des caractères non-ASCII tout en préservant les espaces et les points

En Python, vous pouvez rencontrer des situations dans lesquelles vous devez filtrer les caractères non-ASCII caractères d’une chaîne tout en gardant les espaces et les points intacts. Le code fourni à cet effet, appelé onlyascii(), supprime actuellement tous les caractères non-ASCII, y compris ceux souhaités.

Pour résoudre ce problème, envisagez de modifier la fonction onlyascii() pour inclure une gestion spéciale des espaces et périodes. Une approche consiste à utiliser le string.printable de Python, qui contient un ensemble de caractères jugés imprimables, y compris les espaces et les points.

Dans la fonction onlyascii(), vous pouvez filtrer les caractères non-ASCII tout en autorisant les espaces. et les points à parcourir en vérifiant si le caractère est dans l'ensemble string.printable. Voici comment procéder :

def onlyascii(char):
    if ((ord(char) < 48 or ord(char) > 127)
            and (char not in string.printable)):
        return ''
    else:
        return char

En ajoutant la condition char not in string.printable à l'instruction if, vous vous assurez que les espaces et les points sont conservés, même s'ils sont en dehors de la plage ASCII. En incorporant cette modification dans la fonction get_my_string(), vous pouvez désormais filtrer les caractères non-ASCII tout en préservant les espaces et les points :

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 filtered_data

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn