Grundlagenfragen zum Schreiben von Dateien

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
Python_Padawan
User
Beiträge: 6
Registriert: Samstag 2. Februar 2019, 22:26

Hallo Leute,

mittels
- open(filename,mode)
öffne ich eine Datei und
schreibe anschließend mittels der Methode
- write(String)
in diese hinein.

Gibt es einen Grund, warum der String nicht unmittelbar nach dem Ausführen des Befehles in der Datei steht?

Vielen Dank
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dein Betriebssystem. Denn wenn jedes Byte, das geschrieben wird, gleich auf dem Massenspeicher des Vertrauens landen wuerde, waere die Perfomance unterirdisch. Also werden Daten gecacht, und erst nach einer Weile, oder wenn genug da sind, weggeschrieben.

Erzwingen kannst du das ggf. mit fileobjekt.flush()

Warum ist das denn wichtig? Klingt fuer mich nach einem XY-Problem, bei dem du eigentlich eine andere Loesung als ein File benutzen solltest.
Benutzeravatar
pixewakb
User
Beiträge: 1413
Registriert: Sonntag 24. April 2011, 19:43

Mir ist Deine Frage nicht ganz klar, aber so würde man das erledigen:

Code: Alles auswählen

with open("filename", "w") as f:
	f.write(string)
Ein Problem konnte ich da eigentlich noch nicht feststellen...
Benutzeravatar
__blackjack__
User
Beiträge: 14040
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@pixewakb: Bei Dir ist aber auch ein implizites `close()` durch das ``with`` enthalten – und schliessen einer Datei sorgt dafür das alle Daten auch tatsächlich in die Datei geschrieben werden.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Python_Padawan
User
Beiträge: 6
Registriert: Samstag 2. Februar 2019, 22:26

@__deets__
Super vielen Dank.

Das ist das was ich brauche, Danke.

@all
Vielen Dank auch euch.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du hast immer noch nicht die Frage beantwortet, WARUM du das machen musst. Dateien zu schreiben, und sich darauf zu verlassen, dass wer anders daraus sofort lesen kann, ist ungewoehnlich, und es stehen bessere Mechanismen zur Verfuegung, um zB zwei Programme miteinander kommunizieren zu lassen. Eben weil schreiben und lesen von einem Massenspeicher teuer ist.
Antworten