Ersetzen einer Zeile in einer Datei in Python
-
Verwenden Sie die
for
-Schleife zusammen mit der Funktionreplace()
, um eine Zeile in einer Datei in Python zu ersetzen - Erstellen Sie eine neue Datei mit dem aktualisierten Inhalt und ersetzen Sie die Originaldatei in Python
-
Verwendung von die Funktion
fileinput.input()
zum Ersetzen des Textes in einer Zeile in Python -
Verwenden Sie das Modul
re
, um den Text in einer Zeile in Python zu ersetzen
Das Dateihandling wird als wesentlicher Aspekt jeder Webanwendung angesehen. Ähnlich wie die meisten Programmiersprachen ist Python perfekt in der Lage, das Dateihandling zu unterstützen. Es ermöglicht Ihnen, mit Dateien unterschiedlichen Typs umzugehen, im Wesentlichen um einige grundlegende Operationen wie Lesen und Schreiben durchzuführen. Es bietet auch einige andere Dateihandhabungsoptionen, um die Dateien zu bearbeiten.
Dieses Tutorial zeigt die verschiedenen verfügbaren Methoden zum Ersetzen einer Zeile in einer Datei in Python.
Um die verschiedenen Möglichkeiten zum Ersetzen einer Zeile in einer Datei in diesem Artikel zu demonstrieren, nehmen wir eine Textdatei, motivation.txt
.
Textdatei (motivation.txt
):
There are always second chances in life. Anybody can bounce back from hardships. The hardships that we face are just a test to check our will. A strong will is all it takes to bounce back from a loss.
Der Pfad des Speicherverzeichnisses dieser Datei kann auf dem Computer des Lesers unterschiedlich sein; Daher wird empfohlen, entsprechend anzupassen.
Verwenden Sie die for
-Schleife zusammen mit der Funktion replace()
, um eine Zeile in einer Datei in Python zu ersetzen
Die Funktion open()
wird verwendet, um eine Datei in Python zu öffnen. Die Datei kann entweder im Text- oder im Binärformat geöffnet werden, je nach Programmierer. Die Funktion open()
hat verschiedene Modi, die alle unterschiedliche Zugriffsmöglichkeiten zum Öffnen einer Datei bieten.
Die einfache for
-Schleife ist eine herkömmliche Methode, um jede Zeile in der gegebenen Textdatei zu durchlaufen und die Zeile zu finden, die wir ersetzen möchten. Anschließend kann die gewünschte Zeile mit der Funktion replace()
ersetzt werden. All dies geschieht im Modus Lesen
. Schliesslich wird die Datei im Schreiben
-Modus geöffnet und der ersetzte Inhalt in die angegebene Datei geschrieben.
Der folgende Code verwendet die for
-Schleife zusammen mit der Funktion replace()
.
# opening the file in read mode
file = open("motivation.txt", "r")
replacement = ""
# using the for loop
for line in file:
line = line.strip()
changes = line.replace("hardships", "situations")
replacement = replacement + changes + "\n"
file.close()
# opening the file in write mode
fout = open("motivation.txt", "w")
fout.write(replacement)
fout.close()
Erstellen Sie eine neue Datei mit dem aktualisierten Inhalt und ersetzen Sie die Originaldatei in Python
Mehrere Funktionen sind am Werk, um diesen Prozess zu implementieren. Die Kenntnis des Ablaufs all dieser Funktionen ist notwendig, um diese Methode erfolgreich auszuführen. Wir müssen mehrere Funktionen aus drei Modulen in den Python-Code importieren.
- Zuerst müssen wir die Funktion
mkstemp()
aus dem Modultempfile
importieren. Diese Funktion wird verwendet, um ein Tupel als Ausgabe zusammen mit einem Pfad und einem Dateideskriptor zurückzugeben. - Dann müssen wir zwei Funktionen aus dem Modul
shutil
importieren. Die erste Funktion ist die Funktioncopymode()
, die beim Kopieren der Berechtigungsbits von einem Quell- in den Zielpfad verwendet wird. Die zweite Funktion ist die Funktionmove()
, die das Verschieben von Dateien von einem Ort zum anderen ermöglicht. - Schließlich müssen wir die Funktion
remove()
aus dem ModulOS
importieren. Diese Funktion ermöglicht das Löschen eines Pfades.
Alle diese Module müssen in den aktuellen Python-Code importiert werden, um den Code fehlerfrei auszuführen. Ein Beispielcode, der auf diese Weise implementiert wird, lautet wie folgt.
from tempfile import mkstemp
from shutil import move, copymode
from os import fdopen, remove
# storing the path where the file is saved on your device as a variable
path = "C:\\Users\Admin\Desktop\python\test\motivation.txt"
def replacement(filepath, hardships, situations):
# Creating a temp file
fd, abspath = mkstemp()
with fdopen(fd, "w") as file1:
with open(filepath, "r") as file0:
for line in file0:
file1.write(line.replace(hardships, situations))
copymode(filepath, abspath)
remove(filepath)
move(abspath, filepath)
replacement(path, "hardships", "situations")
Verwendung von die Funktion fileinput.input()
zum Ersetzen des Textes in einer Zeile in Python
Die Methode fileinput.input()
holt sich die Datei zeilenweise als Eingabe und dient hauptsächlich zum Anhängen und Aktualisieren der Daten in der gegebenen Datei.
Die Module fileinput
und sys
müssen in den aktuellen Python-Code importiert werden, um den Code fehlerfrei ausführen zu können. Der folgende Code verwendet die Funktion fileinput.input()
zum Ersetzen des Textes in einer Zeile in Python.
import fileinput
import sys
def replacement(file, previousw, nextw):
for line in fileinput.input(file, inplace=1):
line = line.replace(previousw, nextw)
sys.stdout.write(line)
var1 = "hardships"
var2 = "situations"
file = "motivation.txt"
replacement(file, var1, var2)
Verwenden Sie das Modul re
, um den Text in einer Zeile in Python zu ersetzen
Das Modul re
ist ein eingebautes Modul, das Python Programmierern zur Verfügung stellt, die sich mit regulären Ausdrücken befassen, und es muss in den Code importiert werden. Es hilft bei der Suche nach einem Muster in einer bestimmten Zeichenkette.
In dieser Methode verwenden wir zwei Funktionen, nämlich re.compile()
und re.escape()
aus dem Modul RegEx
. Die Funktion re.compile()
wird verwendet, um aus dem Muster des regulären Ausdrucks ein reguläres Ausdrucksobjekt zu generieren, das dann zum Abgleichen verwendet wird. Die Funktion re.compile()
wird verwendet, um die Sonderzeichen in Python zu ignorieren oder zu maskieren.
Der folgende Code verwendet mehrere Funktionen aus dem Modul Regex
, um den Text in einer Zeile in Python zu ersetzen.
import re
def replacement(Path, text, subs, flags=0):
with open(filepath, "r+") as f1:
contents = f1.read()
pattern = re.compile(re.escape(text), flags)
contents = pattern.sub(subs, contents)
f1.seek(0)
f1.truncate()
f1.write(file_contents)
filepath = "motivation.txt"
text = "hardships"
subs = "situations"
replacement(filepath, text, subs)
Hier haben wir auch eine sub()
-Funktion verwendet, um das angegebene Muster durch einen String oder ein Ergebnis einer angegebenen Funktion zu ersetzen.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedInVerwandter Artikel - Python File
- So erhalten Sie alle Dateien eines Verzeichnisses
- Wie man in Python Text an eine Datei anhängt
- Wie man prüft, ob eine Datei in Python existiert
- Wie man Dateien mit einer bestimmten Endung nur in Python findet
- Wie man bestimmte Zeilen aus einer Datei in Python liest
- Dateiberechtigungen in Python ändern