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 ?
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!