Heim >Backend-Entwicklung >Python-Tutorial >Wie filtere ich Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten 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
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
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!