bestimmte Zeile löschen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

Wieder mal eine Frage zu Textdateien.
Ich lese per Zufallsscript eine Zeile in einer Datei aus. Später will ich während einer if-Schleife diese Zeile aus der Datei löschen. Wie soll ich das anstellen, durch das zufällige Auslesen, weiß ich nicht einmal welche Nummer diese Zeile hat.

Es ginge auch, wenn man diese Zeile in eine neue Datei verschieben würde.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

mal als antwort ohne Code:

1) quelle öffnen zum lesen
2) Ziel öffnen zum schreiben

aus 1 jeweils eine Teile einlesen
Wenn der Zufall zutrifft, nichts machen
sonst Zeile in Ziel schreiben

mfg, querdenker
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

1)Quelle öffnen
2)Zufällige Zeile lesen
3)Wenn...dann Zeile in Ziel verschieben

Wie aber lautet der Ausdruck für das Verschieben einer Zeile. Ich will die Zeile in der Quelle nicht mehr sehen, dafür aber im Ziel....
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo marco_!

Du musst die Quelldatei neu schreiben. Man kann nicht so einfach eine Zeile aus einer Datei löschen. Das würde Löcher in der Datei hinterlassen, welche die Datei verstümmeln würde. Um das zu vermeiden, müsste man eine eigene Datei-Schreib-Logik integrieren.

Was den Zufallsgenerator betrifft --> Du musst nicht mit "choice" arbeiten. Du kannst dir auch eine zufällige Ganzzahl zurück liefern lassen. Mit dieser greifst du dann auf die Liste zu und mit dieser weißt du auch, welche Zeile du löschen musst.

Code: Alles auswählen

import random
print random.randint(0, len([1,2,3,4]))
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten