Zeile aus Datei löschen in Python

Vaibhhav Khetarpal 10 Oktober 2023
  1. Verwenden der Zeilennummer zum Löschen einer bestimmten Zeile aus einer Datei in Python
  2. Löschen der ersten oder letzten Zeile aus einer Datei in Python
  3. Löschen einer Zeile, die mit einem bestimmten Text übereinstimmt
  4. Löschen einer Zeile, die auf ein bestimmtes Wort zutrifft
  5. Löschen der kürzesten Zeile in der gegebenen Datei in Python
  6. Alle Zeilen aus einer bestimmten Datei in Python löschen
Zeile aus Datei löschen in Python

Die Handhabung von Datendateien wird von Python unterstützt und zugelassen und bildet einen wesentlichen Bestandteil der Programmiersprache Python. Es gibt jedoch keine direkten Funktionen in Python, die eine bestimmte Zeile in einer bestimmten Datei löschen können.

Dieses Tutorial zeigt die verschiedenen verfügbaren Möglichkeiten zum Löschen einer bestimmten Zeile aus einer Datei in Python.

Diese Aufgabe des Löschens einer bestimmten Zeile kann mit Hilfe verschiedener Ansätze implementiert werden.

Verwenden der Zeilennummer zum Löschen einer bestimmten Zeile aus einer Datei in Python

Methode 1

Diese Methode verwendet, wie oben angegeben, die vom Benutzer angegebene Zeilennummer, um eine Zeile aus einer bestimmten Datei in Python zu löschen.

Es verwendet die for-Schleife, die readlines()-Methode und die enumerate()-Methode.

Nehmen wir eine Beispieldatei mit dem Namen test.txt, deren Inhalt unten detailliert beschrieben wird.

Hello
My name is
Adam
I am
a 
good
singer
cricketer dancer

Der folgende Code verwendet die Methoden enumerate() und readlines(), um eine Zeile aus einer bestimmten Datei in Python zu löschen.

l1 = []
with open("temp.txt", "r") as fp:
    l1 = fp.readlines()
with open("temp.txt", "w") as fp:
    for number, line in enumerate(l1):
        if number not in [4, 6]:
            fp.write(line)

Der obige Code nimmt die folgenden Änderungen vor:

Hello
My name is
Adam
I am
good
cricketer dancer

Code-Erklärung:

  1. Zuerst wird die Datei im Modus Lesen geöffnet.
  2. Der Inhalt aus der angegebenen Datei wird dann mit Hilfe der Funktion readlines() in eine Liste eingelesen.
  3. Die Datei wird dann geschlossen.
  4. Anschließend wird die Datei erneut geöffnet, diesmal jedoch im Modus Schreiben.
  5. Dann wird eine for-Schleife und die enumerate()-Funktion auf die erstellte Liste implementiert.
  6. Die if-Bedingung wird beim Prüfen und Auswählen der Zeilennummer verwendet. Die genannte Zeilennummer wird gelöscht.
  7. Die Datei wird dann geschlossen.

Methode 2

Die Methode seek() kann auch verwendet werden, um die gleiche Aufgabe des Löschens einer Zeile aus einer Datei unter Verwendung einer Zeilennummer zu implementieren. Wir werden an derselben Datei, test.txt, arbeiten, wie in der obigen Methode erwähnt.

Durch die Verwendung der seek()-Methode müssen wir dieselbe Datei nicht zweimal öffnen, was es einfacher und schneller macht.

Der folgende Code verwendet die Methode seek(), um eine Zeile aus einer bestimmten Datei in Python zu löschen.

with open("temp.txt", "r+") as fp:
    lines = fp.readlines()
    fp.seek(0)
    fp.truncate()
    for number, line in enumerate(lines):
        if number not in [4, 6]:
            fp.write(line)

Der obige Code nimmt die folgenden Änderungen vor:

Hello
My name is
Adam
I am
good
cricketer dancer

Code-Erklärung:

  1. Die Datei wird im r+-Modus geöffnet, der sowohl Lesen als auch Schreiben erlaubt.
  2. Anschliessend wird der Dateiinhalt mit Hilfe der Funktion readlines() in eine Liste eingelesen.
  3. Die Methode seek() wird dann verwendet, um den Zeiger zurück zum Startpunkt der Liste zu bewegen.
  4. Anschliessend wird die Datei mit Hilfe der Methode truncate() gekürzt.
  5. Dann wird eine for-Schleife und die enumerate()-Funktion auf die erstellte Liste implementiert.
  6. Die if-Bedingung wird beim Prüfen und Auswählen der Zeilennummer verwendet. Die genannte Zeilennummer wird gelöscht.
  7. Die Datei wird geschlossen.

Löschen der ersten oder letzten Zeile aus einer Datei in Python

Um diese Methode zu implementieren, verwenden wir List Slicing, während wir den Inhalt der Datei in eine Liste schreiben.

Zum Beispiel löschen wir die erste Zeile aus derselben oben erwähnten Datei (test.txt).

Der folgende Code löscht die erste Zeile aus einer bestimmten Datei in Python.

with open("temp.txt", "r+") as fp:
    lines = fp.readlines()
    fp.seek(0)
    fp.truncate()
    fp.writelines(lines[1:])

Der obige Code nimmt die folgenden Änderungen vor und liefert die folgende Ausgabe:

My name is
Adam
I am
a 
good
singer
cricketer dancer

Code-Erklärung:

  1. Die Datei wird im r+-Modus geöffnet, der sowohl Lesen als auch Schreiben erlaubt.
  2. Der Dateiinhalt wird mit Hilfe der Funktion readlines() in eine Liste eingelesen.
  3. Die Methode seek() wird dann verwendet, um den Zeiger zurück zum Startpunkt der Liste zu bewegen.
  4. Anschliessend wird die Datei mit Hilfe der Methode truncate() gekürzt.
  5. Alle Zeilen aus der Datei werden dann mit Ausnahme der ersten Zeile in eine Liste geschrieben. Möglich wird dies mit Hilfe von List Slicing.

Löschen einer Zeile, die mit einem bestimmten Text übereinstimmt

Diese Methode kann verwendet werden, wenn es mehrere Zeilen gibt, die einen bestimmten Text enthalten. Die Zeilen, die mit dem angegebenen Text übereinstimmen, können dann gelöscht werden.

Beispielsweise löschen wir eine Zeile, die mit einem bestimmten bestimmten Text übereinstimmt, aus derselben Datei (test.txt), die in den oben genannten Methoden verwendet wird.

Diese Methode verwendet die Funktion strip() und die Funktion write(), um die Aufgabe zu implementieren, eine Zeile zu löschen, die einen bestimmten Text enthält.

Der folgende Code löscht eine Zeile, die mit einer bestimmten Zeichenfolge in Python übereinstimmt.

content = "cricketer dancer"
with open("temp.txt", "w") as fp:
    lines = fp.readlines()
    for line in lines:
        if line.strip("\n") != content:
            file.write(line)

Der obige Code nimmt die folgenden Änderungen vor und liefert die folgende Ausgabe:

Hello
My name is
Adam
I am
a 
good
singer

Löschen einer Zeile, die auf ein bestimmtes Wort zutrifft

Ähnlich wie beim Löschen einer Zeile durch Übereinstimmung mit der gesamten Zeichenfolge können wir auch versuchen, ein Wort zu finden, das in einer Zeile enthalten sein könnte, und dann diese bestimmte Zeile löschen.

Beispielsweise löschen wir eine Zeile, die mit einem bestimmten bestimmten Wort übereinstimmt, aus derselben Datei (test.txt), die in den oben genannten Methoden verwendet wird.

Für diese Methode verwenden wir das von Python bereitgestellte Modul os. Wir erstellen auch eine weitere neue Datei und schreiben die Daten hinein, um diese Aufgabe zu implementieren.

Der folgende Code löscht eine Zeile, die mit einem bestimmten bestimmten Wort in Python übereinstimmt.

import os

with open("temp.txt", "r") as input:
    with open("bb.txt", "w") as output:
        for line in input:
            if "cricketer" not in line.strip("\n"):
                output.write(line)
os.replace("bb.txt", "temp.txt")

Der obige Code nimmt die folgenden Änderungen vor und liefert die folgende Ausgabe:

Hello
My name is
Adam
I am
a 
good
singer

Löschen der kürzesten Zeile in der gegebenen Datei in Python

Wie der Name schon sagt, findet und löscht diese Methode die kürzeste Zeile der angegebenen Datei. Hier verwenden wir die Methode len(), um diese Aufgabe zu implementieren.

Zum Beispiel löschen wir die kürzeste Zeile aus derselben Datei (test.txt), die in den obigen Methoden verwendet wird.

Der folgende Code löscht die kürzeste Zeile in der angegebenen Datei in Python.

with open("temp.txt", "r") as rf:
    lines = rf.readlines()
shortest = 1000
lineToDelete = ""
for line in lines:
    if len(line) < shortest:
        shortest = len(line)
        lineToDelete = line
with open("temp.txt", "w") as write_file:
    for line in lines:
        if line == lineToDelete:
            pass
        else:
            write_file.write(line)

Alle Zeilen aus einer bestimmten Datei in Python löschen

Um alle Zeilen einer bestimmten Datei in Python zu löschen, können wir die Funktion truncate() verwenden. Außerdem wird der Dateizeiger dann auf den Beginn der Datei zurückgesetzt.

Der folgende Code löscht alle Zeilen aus einer bestimmten Datei in Python.

with open("temp.txt", "r") as fp:
    fp.truncate()
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

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.

LinkedIn

Verwandter Artikel - Python File