Angenommen, jemand kennt die britische Rechtschreibung und hat beschlossen, sein Studium in den USA abzuschließen. Er wird gebeten, einen Artikel über Python für die Klasse zu schreiben. Er kennt sich in Python aus und hat kein Problem damit, das Papier zu schreiben. Er sprach in einem Teil seiner Zeitung über Bilder und schrieb mehr als einmal das Wort grau
(Britische Schreibweise) statt grau
(US-Schreibweise) zusätzlich zu Nachbarschaft
(Britische Schreibweise) statt Nachbarschaft
(US-Schreibweise). Aber er ist jetzt in den USA und muss alle Wörter, die auf britische Weise geschrieben wurden, durchgehen und sie durch die US-Schreibweise ersetzen.
Dies ist eines von vielen Szenarien, in denen wir einige Schreibweisen oder Fehler ändern müssen mehrere Standorte.
In diesem kurzen Tipp zeige ich Ihnen ein Beispiel, in dem wir fünf Textdateien haben, die meinen Namen falsch geschrieben haben. Das heißt, anstatt zu schreiben Abder
, Adber
ist geschrieben. Das Beispiel zeigt Ihnen, wie Sie mit Python die Schreibweise meines Namens in allen Textdateien eines Verzeichnisses korrigieren können.
Lass uns anfangen!
Bevor wir mit dem Beispiel fortfahren, bereiten wir die Daten (Textdateien) vor, mit denen wir arbeiten möchten. Laden Sie das Verzeichnis mit seinen Dateien herunter. Entpacke das Verzeichnis und schon bist du fertig.
Wie Sie sehen, haben wir ein Verzeichnis mit dem Namen Abder
die enthält fünf verschiedene Dateien mit dem Namen 1,2,3,4 und 5
.
Kommen wir zum spaßigen Teil. Als erstes müssen wir den Inhalt des Verzeichnisses lesen Abder
. Dafür können wir die verwenden listdir ()
Methode wie folgt:
import os verzeichnis = os.listdir ('/ Benutzer / DrAbder / Desktop / Abder')
Wenn wir versuchen zu sehen, was sich im Verzeichnis befindet, können wir Folgendes tun:
Verzeichnis drucken
In diesem Fall erhalten wir:
['.DS_Store', '1.rtf', '2.rtf', '3.rtf', '4.rtf', '5.rtf']
Das zeigt, dass wir fünf haben rft
Dateien im Verzeichnis.
Um sicherzustellen, dass wir mit dem aktuellen Verzeichnis (Verzeichnis von Interesse) arbeiten, können wir verwenden chdir
wie folgt:
os.chdir ('/ Benutzer / DrAbder / Desktop / Abder')
Als nächstes müssen wir alle Dateien im Verzeichnis durchlaufen Abder
. Wir können eine verwenden for-Schleife
wie folgt:
für Datei im Verzeichnis:
Da wollen wir in jeder der fünf Dateien im Verzeichnis nachsehen und suchen Adber
, In diesem Stadium ist es normal, den Inhalt jeder Datei zu öffnen und zu lesen:
open_file = open (Datei, 'r') read_file = open_file.read ()
Jetzt kommt ein entscheidender Schritt, vor allem wenn wir über Pattern Matching sprechen, in unserem Fall die Suche Adber
. In diesem Schritt werden reguläre Ausdrücke verwendet. In Python verwenden wir das re-Modul, um reguläre Ausdrücke zu verwenden.
Wir werden zwei Hauptfunktionen aus diesem Modul verwenden. Die erste ist compile ():
Kompilieren Sie ein Muster für reguläre Ausdrücke in ein Objekt für reguläre Ausdrücke, das zum Abgleichen mit seinem Objekt verwendet werden kannSpiel()
undSuche()
Methoden.
Und das zweite ist sub (), um die falsche Schreibweise durch die richtige zu ersetzen. Wir werden also folgendes tun:
regex = re.compile ('Adber') read_file = regex.sub ('Abder', read_file)
Schließlich möchten wir den neuen Text nach dem Ersetzen in unsere Dateien wie folgt schreiben:
write_file = open (Datei, 'w') write_file.write (read_file)
In diesem Abschnitt wollen wir sehen, wie das gesamte Python-Skript aussehen wird Adber
in jeder Datei und ersetzen Sie das mit Abder
, aussehen wird:
import os, re directory = os.listdir ('/ Users / DrAbder / Desktop / Abder') os.chdir ('/ Users / DrAbder / Desktop / Abder') für die Datei im Verzeichnis: open_file = open (Datei, 'r' ) read_file = open_file.read () regex = re.compile ('Adber') read_file = regex.sub ('Abder', read_file) write_file = open (Datei, 'w') write_file.write (read_file)
Wie wir sehen können, macht es Python sehr einfach, Änderungen mit mehreren Dateien über mehrere Dateien durchzuführen for-Schleife
. Ein weiterer wichtiger Aspekt, den Sie hier beachten sollten, ist die Verwendung regulärer Ausdrücke für die Mustererkennung.
Wenn Sie mehr über die Python-Loops erfahren möchten, aktivieren Sie das Kontrollkästchen A Smooth Refresher in Python's Loops. Weitere Informationen zu regulären Ausdrücken finden Sie unter Reguläre Ausdrücke in Python.