[Python-de] Frage zu x.write('xxxx')

Detlef Lannert lannert at python.net
Fri Jan 3 19:52:12 EST 2003


Kathleen Dennler <kdennler at gmx.de> wrote:
> ich versuche gerade, mich bei python in die Speicherung von Daten
> einzuarbeiten. Zuerst möchte ich versuchen, beliebige strings in einem .txt Dokument zu
> speichern. Dazu habe ich folgenden kleinen Quelltext:
> 
> def spielerei(text):
>     spiel = open('wow.txt')
>     spiel.read()
>     spiel.write(text)
>     spiel.read()
>     spiel.close()
>     return 'fertig'
> 
> print spielerei('sosososo')
> 
> Leider gibt mir python dabei diesen Fehler aus:

Du hast die Datei nur zum Lesen geöffnet -- daher wird beim Versuch,
Daten hineinzuschreiben, ein Fehler gemeldet.

Es ist zwar möglich, dasselbe Dateiobjekt (das vom open() geliefert
wird, bei Dir spiel) zum Schreiben und zum Lesen im Wechsel zu
verwenden, aber das ist nicht gerade leichte Kost für Einsteiger ...

Also entweder liest und schreibst Du verschiedene Dateien:

def spielerei(text):
    einspiel = open("wow.txt")
    ausspiel = open("boah.txt", "w")  # zum Schreiben geöffnet
    daten = einspiel.read()
    ausspiel.write(text + daten)
    einspiel.close()
    ausspiel.close()
    return daten
print spielerei("sosososo") # gibt die gelesenen Daten aus

oder Du liest und schreibst nacheinander:

def spielerei(text):
    spiel = open("wow.txt") # zum Lesen
    altedaten = spiel.read()
    spiel.close()
    spiel = open("wow.txt", "w") # zum Schreiben
    spiel.write(text)  # alten Inhalt überschreiben
    spiel.close()
    return altedaten
print "vorher stand drin:", spielerei("sosososo\n")
    

Für den Anfang ist das vielleicht einfacher.

  Detlef




More information about the Python-de mailing list