Seite 1 von 1

Bei Schreiboperatoren etwas an Datei anhängen

Verfasst: Montag 12. März 2007, 16:02
von sprudel
Hallo.
Ich habe folgendes Problem: Ich möchte etwas in eine Datei schreiben, allerdings möchte ich es an die Datei anhängen, und nicht alles überschreiben. Ich habe folgenden Code probiert, der aber nicht funktioniert weil der Mode 'a' nicht existiert. Eigentlich habe ich aber schon genug Beispiele im Internet gesehen, wo dieser verwendet wird. Ich kann mir nicht erklären warum.

Code: Alles auswählen

    link = open(filename, 'a', 0)
    link.write(inhalt)
    if(flush != 0):
        link.flush()
    link.close()
    return True

Verfasst: Montag 12. März 2007, 16:30
von BlackJack
Was ist denn die Fehlermeldung? Und warum benutzt Du `flush()` auf einer Datei die ungepuffert ist?

Und werd diese komische ``return True`` Angewohnheit los.

Verfasst: Montag 12. März 2007, 16:31
von sprudel
Was habt ihr denn alle gegen das PHP typische "return True" ??? ;-)
Da tu ich mich einfach so schwer mir das abzugewöhnen.

Als Fehlermeldung bekomme ich folgendes:

Traceback (most recent call last):
File "/home/chris/data/Programmierung und Entwicklung/Python/PyBench 0.5/pybench.py", line 86, in <module>
filemodule.writelinefile(logfiletext,LOGFILE_PATH+logfilename,1)
File "/media/MAINDATA150/Programmierung und Entwicklung/Python/PyBench 0.5/filemodule.py", line 21, in writelinefile
link = open(filename, 'a', 0)
IOError: invalid mode: a

Verfasst: Montag 12. März 2007, 17:30
von BlackJack
Interessante Fehlermeldung. Kann ich nicht nachvollziehen. Ist `open()` das originale `open()`? Wie sieht der Dateiname aus?

Verfasst: Montag 12. März 2007, 17:32
von schlangenbeschwörer
Hi Sprudel!
Was soll eigentlich das flush? Ist das nicht überflüssig, wenn die datei danach eh geschlossen wird?
Und an deiner Pythoninstallation liegts auch nicht? Gib mal help(open) ein, was da steht, müsste ja gehen. Oder probier das ganze mal mit "file(...)"
Gruß, jj

Verfasst: Montag 12. März 2007, 18:01
von sprudel
Hallo.
Vielen Dank für eure Hilfe. Es war tatsächlich ein Problem mit dem Dateinamen. Auch wenn ich mir das nicht so recht erklären kann, warum es dann so eine Fehlermeldung ausgibt.
Vielen Dank trotzdem :-)