Zeile in Textdatei löschen
Mit
?
Code: Alles auswählen
readline()[1:]
- __blackjack__
- User
- Beiträge: 14374
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@egon11: Ich würde die erste Zeile beim einlesen schon überspringen.
Who is General Failure and why is he reading my hard disk?
Es würde dann bestimmt so aussehen:
Code: Alles auswählen
a = open("/meinedatei.txt")
file = a.readlines()[2:]
a.close()
b = open ("/meinedatei.txt", "w")
b.write(file)
b.close()
- __blackjack__
- User
- Beiträge: 14374
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Nein, weil das a) die ersten *zwei* Zeilen entfernt und b) trotzdem erst einmal alle Zeilen einliest.
Die Namen sind schlecht. `a` und `b` müssen nicht verschieden sein, es wäre aber besser wenn die tatsächlich beschreiben würden was der Name bedeutet. `file` ist keine Datei sondern eine Liste mit Zeilen.
Die Namen sind schlecht. `a` und `b` müssen nicht verschieden sein, es wäre aber besser wenn die tatsächlich beschreiben würden was der Name bedeutet. `file` ist keine Datei sondern eine Liste mit Zeilen.
Who is General Failure and why is he reading my hard disk?
- __blackjack__
- User
- Beiträge: 14374
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Oder man nimmt die Methode die tatsächlich mehrere Zeilen aus einem iterierbaren Objekt speichern kann.
Who is General Failure and why is he reading my hard disk?
So das ganze hab ich jetzt so gelöst:
Und das klappt so wie ich es haben wollte.
Code: Alles auswählen
allfile = open("/home/versuch.txt", "r")
fobj = allfile.readlines()[1:]
allfile.close()
for i in fobj:
print(i)
newfile = open("/home/versuch1.txt", "a")
newfile.write(i)
newfile.close()
Ist ist ziemliche Verschwendung, die Datei für jede Zeile nochmal neu zu öffnen. fobj ist kein File-Objekt sondern eine Liste mit Strings. i ist kein Index sondern ein Zeile.
Code: Alles auswählen
with open("/home/versuch.txt") as lines:
with open("/home/versuch1.txt", "w") as output:
_ = next(lines) # skip first line
output.writelines(lines)- __blackjack__
- User
- Beiträge: 14374
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@egon11: Glaube ich nicht. Jedenfalls nicht wenn man das mehr als einmal laufen lässt oder `/home/versuch1.txt` aus einem anderen Grund vorher schon existiert.
Who is General Failure and why is he reading my hard disk?
