Seite 1 von 1
Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 15:25
von qcaine
Hi zusammen..
habe das Problem wenn ich eine Datei beschreibe, wird diese auch beschrieben aber bei der print Ausgabe wird der
Text nicht ausgegeben. Wenn ich allerdings die test.txt Datei öffne steht da der Text der bei datei.write eingegeben wurde.
Was mache ich falsch ??
Code: Alles auswählen
datei = open("test.txt", mode="w+")
datei.write("Das ist eine Testzeile!")
datei.seek(0)
datei.read()
print(datei.read())
datei.close()
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 15:42
von Sirius3
Normalerweise schreibt man entweder in eine Datei, oder liest daraus. Warum möchtest Du beides?
Dateien öffnet man innerhalb eines with-Statements, und gibt das gewünschte Encoding explizit an.
Sobald Du die Datei mit read komplett gelesen hast, ist der Dateizeiger am Ende und jeder weitere read-Aufruf liefert einen leeren String.
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 15:51
von qcaine
Es hat keinen bestimmten zweck, bin nur am üben. Und da lesen und schreiben in einer Datei machbar ist möchte ich das auch können.
datei,seek(0 stellt den Dateizeiger wieder auf Anfang also kanns nicht da dran liegen.
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 15:57
von Sirius3
Wichtiger ist es aber, zu wissen, dass nun das im Normalfall nicht benutzt. Lies nochmal genau, was Du geschrieben hast.
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 16:16
von qcaine
So gehts
Code: Alles auswählen
datei = open("test.txt", mode="w+")
datei.write("Das ist eine Testzeile!")
datei.seek(0)
a = datei.read()
print(a)
datei.close()
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 16:32
von __blackjack__
@qcaine: Das kommt darauf an was Du mit „So gehts“ meinst. Dir ist klar, dass das davon abhängt ob die Datei schon existiert und wie viel Text sie bereits enthält was da ausgegeben wird‽ Das kann mehr sein als nur "Das ist eine Testzeile!".
Und die anderen Anmerkungen solltest Du auch umsetzen. Also ``with`` und die Kodierung explizit angeben.
Ausserdem sollte man Textzeilen immer mit einem Zeilenendezeichen abschliessen. Sonst ist das nicht wirklich eine komplette Zeile. Das fällt beispielsweise auf, wenn da schon Daten in der Datei stehen, oder wenn man eine neue Zeile hinzufügen will, oder wenn man Textdateien zu neuen Dateien zusammenfügt.
`a` ist kein besonders guter Name.
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 18:30
von Sirius3
@__blackjack__: in diesem Fall legt 'w+' immer eine neue leere Datei an.
Re: Dateien beschreiben/lesen
Verfasst: Sonntag 23. Oktober 2022, 18:50
von __blackjack__
Hm, das kommt davon wenn man Sachen die man nicht benutzen sollte, tatsächlich auch nicht benutzt.
