Heim >Backend-Entwicklung >Python-Tutorial >Wie bleiben Leerzeichen und Punkte erhalten, während Nicht-ASCII-Zeichen in Python-Textdateien entfernt werden?

Wie bleiben Leerzeichen und Punkte erhalten, während Nicht-ASCII-Zeichen in Python-Textdateien entfernt werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-19 20:30:29612Durchsuche

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

Umgang mit Nicht-ASCII-Zeichen, Beibehaltung von Leerzeichen und Punkten

Beim Umgang mit Textdateien ist es oft notwendig, Nicht-ASCII-Zeichen zu entfernen Bewahrung spezifischer Einheiten wie Leerzeichen und Perioden. Der bereitgestellte Python-Code filtert erfolgreich Nicht-ASCII-Zeichen heraus, entfernt jedoch versehentlich auch Leerzeichen und Punkte.

Um dieses Problem zu beheben, müssen wir die Funktion onlyascii() ändern, um Leerzeichen und Punkte explizit vom Filterprozess auszuschließen . Hier ist eine aktualisierte Version:

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

In dieser überarbeiteten onlyascii()-Funktion prüfen wir, ob das Zeichen ein Leerzeichen (' ') oder ein Punkt ('.') ist und geben es zurück, wenn ja. Diese Änderung stellt sicher, dass diese Entitäten in der gefilterten Zeichenfolge erhalten bleiben.

Um die aktualisierte Funktion onlyascii() zu verwenden, können wir die Funktion get_my_string() ändern, um Zeichen mithilfe dieser Funktion zu filtern:

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

Die Methode „join()“ wird verwendet, um die Zeichen aus dem von der Funktion „filter()“ zurückgegebenen Iterable zu verketten, was zu einer Zeichenfolge führt.

Durch die Implementierung dieser Änderungen können Sie Nicht-ASCII-Zeichen entfernen und dabei Leerzeichen beibehalten und Punkte in Ihrer Textzeichenfolge, passend zu Ihren spezifischen Projektanforderungen.

Das obige ist der detaillierte Inhalt vonWie bleiben Leerzeichen und Punkte erhalten, während Nicht-ASCII-Zeichen in Python-Textdateien entfernt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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