Hallo,
ich möchte ein Python Script haben, dass eine .txt Datei nach z.B. "Hallo Du" durchsucht und alle Zeilen löscht, die Hallo Du in ihnen stehen haben. Der Rest der Datei soll allerdings intakt bleiben, weshalb ein Clear außer Frage ist. Das ganze soll durchgehend laufen.
Ich brauche das, da ich ein anderes Script habe das unvermeidlich (!) sachen, die ich nicht benötige in Zeilen schreibt aber dazwischen auch das ist, was ich benötige.
Ich hoffe mir kann jemand helfen
Tilo
Bestimmte Zeilen aus Text-Datei löschen
Code: Alles auswählen
if message.author.bot:
data = []
Hax = message.content
data.append(Hax)
with open('Result.txt', 'a') as out_file:
out_file.write('{0}\n'.format(', '.join(str(n) for n in data)))
print("Successfully claimed and saved")
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Tilo: Der Code zum schreiben macht keinen Sinn. Da ist eine Liste die grundsätzlich nur *ein* Element enthält. Das lässt sich auch so schreiben:
Wenn das Programm auch in die Datei schreiben kann während Du versuchst daraus Zeilen zu löschen, dann sehe ich ein Problem. Denn man kann aus einer Datei keine Zeilen löschen. Das läuft letztendlich auf neu schreiben ohne die unerwünschten Zeilen hinaus. Und dazu sollte man sicherstellen, dass die Datei während der ”Löschaktion” nicht zusätzliche Zeilen bekommen kann.
Code: Alles auswählen
if message.author.bot:
with open('Result.txt', 'a') as out_file:
out_file.write('{0}\n'.format(message.content))
print('Successfully claimed and saved')
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Oh, danke.
Heißt das, es ist nicht möglich? Ich habe online etwas gefunden, wo eine bestimmte Zeile ausgewählt wurde (z.B. Zeile 10) und diese dann gelöscht wurde. Vielleicht kann man ja die Zeile auslesen, in der das unerwünschte geschrieben wird.
Heißt das, es ist nicht möglich? Ich habe online etwas gefunden, wo eine bestimmte Zeile ausgewählt wurde (z.B. Zeile 10) und diese dann gelöscht wurde. Vielleicht kann man ja die Zeile auslesen, in der das unerwünschte geschrieben wird.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
wie __blackjack__ schon sagt musst du sicher stellen, dass nicht zwei Prozesse gleichzeitig in die Datei schreiben wollen. Also du kannst entweder die Datei einlesen, unerwünschte Zeilen löschen und die Datei noch schreiben _oder_ neue Zeilen hinzufügen. Beides gleichzeitig geht nicht, jedenfalls nicht mit einer normalen Text-Datei.
Gruß, noisefloor
wie __blackjack__ schon sagt musst du sicher stellen, dass nicht zwei Prozesse gleichzeitig in die Datei schreiben wollen. Also du kannst entweder die Datei einlesen, unerwünschte Zeilen löschen und die Datei noch schreiben _oder_ neue Zeilen hinzufügen. Beides gleichzeitig geht nicht, jedenfalls nicht mit einer normalen Text-Datei.
Gruß, noisefloor
Ok, das habe ich verstanden. Aber wäre es denn möglich, wenn keine Datei die .txt gerade benutzt, unegwünschte Zeilen zu löschen? Dann könnte man ja z.B. das Schreibprogramm alle 60 sekunden die datei für 10 Sekunden schließen, damit das 2. Programm löschen kann.