Maison >développement back-end >Tutoriel Python >Comment conserver les espaces et les points tout en supprimant les caractères non-ASCII dans les fichiers texte Python ?

Comment conserver les espaces et les points tout en supprimant les caractères non-ASCII dans les fichiers texte Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 20:30:29612parcourir

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

Gestion des caractères non-ASCII, préservation des espaces et des points

Lorsque vous traitez des fichiers texte, il est souvent nécessaire de supprimer les caractères non-ASCII lors préserver des entités spécifiques comme les espaces et les périodes. Le code Python fourni filtre avec succès les caractères non-ASCII, mais supprime également par inadvertance les espaces et les points.

Pour résoudre ce problème, nous devons modifier la fonction onlyascii() pour exclure explicitement les espaces et les points du processus de filtrage. . Voici une version mise à jour :

<code class="python">def onlyascii(char):
    if char == ' ' or char == '.':
        return char
    elif ord(char) < 48 or ord(char) > 127:
        return ''
    else:
        return char</code>

Dans cette fonction onlyascii() révisée, nous vérifions si le caractère est un espace (' ') ou un point ('.') et le renvoyons si c'est le cas. Cette modification garantit que ces entités sont conservées dans la chaîne filtrée.

Pour utiliser la fonction onlyascii() mise à jour, nous pouvons modifier la fonction get_my_string() pour filtrer les caractères à l'aide de cette fonction :

<code class="python">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)</code>

La méthode join() est utilisée pour concaténer les caractères de l'itérable renvoyé par la fonction filter(), ce qui donne une chaîne.

En implémentant ces modifications, vous pouvez supprimer les caractères non-ASCII tout en préservant les espaces et des points dans votre chaîne de texte, répondant aux exigences spécifiques de votre projet.

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