über python in eine txt datei reinschreiben?
ich kriege immer eine fehlermeldung, habe auch gegooglet was das problem sein könnte aber so richtig verstehen tu ich es nicht:
file = open('test.txt', "a")
testList = ['a', 'b', 'c']
for i in testList:
file.write(str(i) + '\n')
file.close()
Das ist mein Code und meine Fehlermeldung ist:
File "C:\Users\xxx\Documents\projekt\test.py", line 5, in <module>
file.close()
OSError: [Errno 9] Bad file descriptor
Wenn ich file.close() lösche, kommt keine Fehlermeldung, aber dann macht es auch nix an der Datei. Weiß jemand was ich da machen muss? Benutze Visual Studio Code
5 Antworten
Fast alle Einsteiger und auch ein sehr großer Teil an fortgeschrittenen Entwicklern öffnen Dateien in Python leider falsch.
Richtig und sicher wird das so gemacht:
with open('foo.txt', 'w', encoding='utf-8', errors='strict') as fp:
for c in 'abc':
print(c, file=fp)
Das ...
- ... ist viel kürzer,
- ... stellt sicher, dass die Datei auch im Fehlerfall korrekt geschlossen wird,
- ... spezifiziert explizit die Kodierung und die Fehlerbehandlung.
Bitte gewöhne dir diesen "Stil" an, und weise das Ergebnis von open() nie wieder händisch einer Variablen zu.
Viel Spaß noch! :)
Vielen Dank. Der eigentliche Fehler war der Virenschutz von windows...
Hat anscheinend mir keine Berechtigungen gegeben in der Datei was reinzuschreiben.
Existiert die Datei?
Wenn nicht kannst du mit "a" auch nichts anhängen.
Entweder die Datei vorher anlegen oder "w" nehmen
a erzeugt eine nicht existierende Datei, öffnet fürs Schreiben und führt ein seek() zum Ende der Datei durch.
Entweder existiert die Datei nicht, oder du musst noch den Pfad angeben.
os.path.normpath("C:/Users/xxx/Documents/projekt/test.py")
Versuch es mal mit diesem Dateipfad.
Ich habe zwar keine Ahnung von Python, aber bei so ziemlich allen mir bekannten Programmiersprachen führen einfache \ in Dateiangaben zu Problemen...
Und nenne mal die Variable anders als "file"