Seite 1 von 1

Grundlagenfragen zum Schreiben von Dateien

Verfasst: Samstag 2. Februar 2019, 22:38
von Python_Padawan
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

Re: Grundlagenfragen zum Schreiben von Dateien

Verfasst: Samstag 2. Februar 2019, 22:55
von __deets__
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.

Re: Grundlagenfragen zum Schreiben von Dateien

Verfasst: Samstag 2. Februar 2019, 22:56
von pixewakb
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...

Re: Grundlagenfragen zum Schreiben von Dateien

Verfasst: Sonntag 3. Februar 2019, 01:41
von __blackjack__
@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.

Re: Grundlagenfragen zum Schreiben von Dateien

Verfasst: Sonntag 3. Februar 2019, 13:45
von Python_Padawan
@__deets__
Super vielen Dank.

Das ist das was ich brauche, Danke.

@all
Vielen Dank auch euch.

Re: Grundlagenfragen zum Schreiben von Dateien

Verfasst: Sonntag 3. Februar 2019, 13:48
von __deets__
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.