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:
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