Seite 1 von 1

Strings in eine Datei schreiben und anhängen

Verfasst: Dienstag 15. März 2005, 16:16
von sunnyi
Hallo,
ich versuche gerade Strings mittels Eingabe, in eine Datei zu schreiben. Wenn ich die zweite Eingabe mache, wird der erste String in der Datei wieder überschrieben.
ich möchte aber, dass der nächste Strings angehängt wird.

Kann mir jemand helfen?

Verfasst: Dienstag 15. März 2005, 16:17
von jens
mit "a"-append die Datei öffnen:

Code: Alles auswählen

f = file("datei.txt", "a")

Verfasst: Dienstag 15. März 2005, 16:30
von sunnyi
Ups -
a wie append

Danke vielmals

Verfasst: Dienstag 15. März 2005, 16:39
von sunnyi
Hallo jens,
und wie macht man bei append, dass jede Eingabe in eine separate Zeile geschrieben wird?

Verfasst: Dienstag 15. März 2005, 16:45
von jens
Hänge an deinen String bzw. an die Eingabe ein "\n" Newline-Zeichen dran...
Zeigt doch mal dein Source-Code...

Verfasst: Dienstag 15. März 2005, 16:51
von sunnyi

Code: Alles auswählen

answer=raw_input("Text-Eingabe: ")

f = file( "datei.txt", "a" )
f.writelines( answer )
f.close()

Verfasst: Dienstag 15. März 2005, 16:56
von jens
So sollte es gehen... obwohl scheibt write() schon selber ein "\n"? Weiß ich jetzt nicht... Wenn du eine leerzeile in der Datei hast, dann ja ;)

Code: Alles auswählen

answer=raw_input("Text-Eingabe: ")

f = file( "datei.txt", "a" )
f.write( answer + "\n" )
f.close()

Verfasst: Dienstag 15. März 2005, 17:00
von sunnyi
Yep so geht es,
Ich dachte erst writelines macht das von alleine?
Na dann danke für die Hilfe

Verfasst: Dienstag 15. März 2005, 17:03
von jens
Tut's nicht: http://python.org/doc/lib/bltin-file-ob ... ml#l2h-250
Write a sequence of strings to the file [...] does not add line separators.

Verfasst: Dienstag 15. März 2005, 17:16
von sunnyi
Klar, sonst kommt der nächste und will am Zeilenende anhängen. :)

Verfasst: Dienstag 15. März 2005, 17:51
von CM
Das darfst Du auch als Angebot an Dich, den Programmierer, verstehen: Für welches Betriebssystem soll beispielsweise Deine Datei wie erscheinen?
In anderen Programmiersprachen, beispielsweise C, worauf Python ja basiert, ist der Programmierer ebenfalls gezwungen Newline-Charaktere anzuhängen.
Hier wie dort ist ein weiterer Grund, daß Du ja nicht beim Einlesen eines Strings immer vorher weißt, wo der terminierende Charakter stehen soll - auf diese Weise kannst Du das entscheiden ohne, daß Du erst solche Zeichen rausfiltern, komplizierte Stringoperationen machen und dann wieder anhängen mußt.

Das alles nur nebenbei ...

Gruß,
Christian

Verfasst: Mittwoch 16. März 2005, 12:05
von sunnyi
Klar Christian,
Ich bin zur Zeit eben erstmal damit beschäftigt, mich in die syntaktischen Gegebenheiten einzuarbeiten.
Manche Dinge sind in Python wesentlich leichter als in anderen Sprachen.

Naja -
Ich arbeite daran