Hallo, Hilfe!!
Ich möchte z.B in einer Datei eine Zeile zwischen Zeile 3 und Zeile 4 einfügen, wie kann ich am besten vorgehen.
Der erste Idee ist, ich zerlege diese Datei in 2 Dateien und füge ich eine Zeile in Datei 1, und füge ich die beiden Dateien wieder zusammen.
Kann jmd mir an dieser Stelle hilfen, oder weiß jmd, wie man ohne die Datei zu zerlegen direkt Zeile einfügen kann.
Wie kann ich Zeile einfügen an einem bestimmten Position
Direkt einfügen geht nicht weil die einzelnen Bytes nacheinander in der Datei liegen. Man müsste ja alles nach der eingefügten Zeile nach "hinten" verschieben.
Wenn die Datei nicht zu gross ist kann man sie komplett in eine Liste mit Zeilen einlesen, die neue Zeile in diese Liste einfügen und dann die Zeilen wieder in die Datei schreiben.
Ansonsten muss man zwei Dateien benutzen. Erst alle Zeilen bis zum Einfügepunkt in eine neue Datei kopieren, dann die neue Zeile in diese Datei schreiben und dann die restlichen Zeilen hinterherkopieren. Zum Schluss benennt man die Datei noch zur Ursprungsdatei um.
Wenn die Datei nicht zu gross ist kann man sie komplett in eine Liste mit Zeilen einlesen, die neue Zeile in diese Liste einfügen und dann die Zeilen wieder in die Datei schreiben.
Ansonsten muss man zwei Dateien benutzen. Erst alle Zeilen bis zum Einfügepunkt in eine neue Datei kopieren, dann die neue Zeile in diese Datei schreiben und dann die restlichen Zeilen hinterherkopieren. Zum Schluss benennt man die Datei noch zur Ursprungsdatei um.
-
- User
- Beiträge: 8
- Registriert: Donnerstag 19. April 2007, 15:38
Ich bin ein absoluter Pythonanfänger und weiß nicht, wie ich das ganze schreiben kann, kannst du mal paar code schreiben, vielen Dank![/code]
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi powerpython!powerpython hat geschrieben:Ich bin ein absoluter Pythonanfänger
Ich weiß, dass ich fies bin.
Wenn du dir das http://www.python-forum.de/topic-6157.html durchgelesen hast, dann helfe ich dir weiter.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
FILENAME = "testdatei.txt"
def create_file(filename):
"""
Erstellt die Testdatei mit Text
"""
# Textzeilen (\n steht für einen Zeilenumbruch)
lines = [
"Ich bin Zeile 1\n",
"Ich bin Zeile 2\n",
"Ich bin Zeile 3\n",
]
# Datei zum Schreiben öffnen und Zeilen hineinschreiben
f = file(filename, "w")
f.writelines(lines)
f.close()
def insert_line(filename, insert_pos, line):
"""
Fügt der angegebenen Datei oberhalb der angegebenen Position die
Zeile hinzu. Diese Funktion sollte nicht für große Dateien (50 MB)
verwendet werden.
"""
# Datei zum Lesen öffnen und alle Zeilen in eine Liste einlesen
f = file(filename, "rU")
lines = f.readlines()
f.close()
# Wenn die Zeile nicht mit einem Zeilenumbruch endet, dann wird dieser
# hinzugefügt.
if not line.endswith("\n"):
line += "\n"
# Der Liste die neue Zeile hinzufügen
lines.insert(insert_pos, line)
# Speichern
f = file(filename, "w")
f.writelines(lines)
f.close()
def main():
create_file(FILENAME)
insert_line(FILENAME, 1, "Ich bin gekommen um zu bleiben.")
if __name__ == "__main__":
main()
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi N317V!N317V hat geschrieben:
Wie glaubst du, kann man jemandem guten Programmierstil beibringen? Mit abstrakten Erklärungen oder mit guten Beispielen?
Wir sind anderer Meinung darüber und es bringt nichts, einen alten Hasen, der schon vor über zehn Jahren im WIFI unterrichtet hat, davon abbringen zu wollen. Im Physik-Unterricht wollen wir praktische Beispiele. Im Mathematik-Unterricht wollen wir praktische Beispiele. Warum soll das in der Programmierung anders sein. Alle jammern, dass zu wenig Beispiele in der Python-Dokumentation sind. Und du und evt. noch ein paar andere glauben, dass jemandem mehr geholfen ist, wenn man ihm nur ein paar abstrakte Hinweise vor die Füße schmeißt. -- Ich nicht!
Falls das zu einer Grundsatzdiskussion ausartet, müssen wir die Beiträge von dem Originalthema abtrennen.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Ich will's nicht in eine Grundsatzdiskussion ausarten lassen, aber vom OP gibt's noch einen anderen Beitrag und beide zusammen lassen die Vermutung zu, dass Du ihm gerade einen Teil seiner Hausaufgabe gelöst hast.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Ups!BlackJack hat geschrieben:beide zusammen lassen die Vermutung zu, dass Du ihm gerade einen Teil seiner Hausaufgabe gelöst hast.
Das wollte ich nicht!
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Im Übrigen hätte die Suchfunktion mindestens einen Thread zu diesem Thema zu Tage befördert. Und zwar einen, in dem der Fragende auch seine eigenen Versuche in Form von Quelltext postet.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt