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.
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

bestimmte Zeile löschen

Beitragvon marco_ » Dienstag 12. April 2005, 17:28

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

Beitragvon querdenker » Dienstag 12. April 2005, 18:16

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

Beitragvon marco_ » Dienstag 12. April 2005, 18: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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Dienstag 12. April 2005, 21:01

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.

Wer ist online?

Mitglieder in diesem Forum: beerus, Tholo