Dateien beschreiben/lesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
qcaine
User
Beiträge: 18
Registriert: Samstag 25. Dezember 2021, 10:05

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()

Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
qcaine
User
Beiträge: 18
Registriert: Samstag 25. Dezember 2021, 10:05

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.
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

Wichtiger ist es aber, zu wissen, dass nun das im Normalfall nicht benutzt. Lies nochmal genau, was Du geschrieben hast.
qcaine
User
Beiträge: 18
Registriert: Samstag 25. Dezember 2021, 10:05

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()
Benutzeravatar
__blackjack__
User
Beiträge: 14077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

@__blackjack__: in diesem Fall legt 'w+' immer eine neue leere Datei an.
Benutzeravatar
__blackjack__
User
Beiträge: 14077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Hm, das kommt davon wenn man Sachen die man nicht benutzen sollte, tatsächlich auch nicht benutzt. 😳
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten