Heim > Backend-Entwicklung > Python-Tutorial > Wie filtere ich Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten in Python?

Wie filtere ich Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten in Python?

Patricia Arquette
Freigeben: 2024-10-19 20:33:29
Original
571 Leute haben es durchsucht

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

Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten entfernen

In Python kann es vorkommen, dass Sie Nicht-ASCII-Zeichen herausfiltern müssen Zeichen aus einer Zeichenfolge, wobei Leerzeichen und Punkte intakt bleiben. Der für diesen Zweck bereitgestellte Code, bekannt als onlyascii(), entfernt derzeit alle Nicht-ASCII-Zeichen, einschließlich der gewünschten.

Um dieses Problem zu beheben, sollten Sie die Funktion onlyascii() so ändern, dass sie eine spezielle Behandlung für Leerzeichen und enthält Perioden. Ein Ansatz besteht darin, Pythons string.printable zu verwenden, das eine Reihe von Zeichen enthält, die als druckbar gelten, einschließlich Leerzeichen und Punkte.

Innerhalb der Funktion onlyascii() können Sie Nicht-ASCII-Zeichen herausfiltern und gleichzeitig Leerzeichen zulassen und zu durchlaufende Zeiträume, indem überprüft wird, ob das Zeichen im string.printable-Satz enthalten ist. So können Sie es tun:

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

Durch Hinzufügen der Bedingung „char not in string.printable“ zur if-Anweisung stellen Sie sicher, dass Leerzeichen und Punkte erhalten bleiben, auch wenn sie außerhalb des ASCII-Bereichs liegen. Durch die Integration dieser Änderung in die Funktion get_my_string() können Sie jetzt Nicht-ASCII-Zeichen herausfiltern und dabei Leerzeichen und Punkte beibehalten:

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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie filtere ich Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage