Seite 1 von 1
Datei lesen und löschen unter Windwos
Verfasst: Dienstag 7. Februar 2012, 12:39
von koetom
Hallo zusammen,
ich verwende CPython auf einem Win XP.
Jetzt möchte ich in einem Programm eine Datei öffnen auslesen und anschließend löschen.
Obwohl ich die Datei nach dem lesen mit f.close() zu gemacht habe bekomme ich beim Löschen die Fehlermeldung das die Datei von einem anderen Prozess benutzt wird. Anscheinend steht sich hier mein Skript selber im Weg, denn sonst wird auf die Datei nicht zugegriffen.
Weiß jemand Rat ?
Gruß,
Tom
Re: Datei lesen und löschen unter Windwos
Verfasst: Dienstag 7. Februar 2012, 12:40
von Hyperion
Wie wäre es, wenn Du uns mal den Code zeigst inkl. der exakten Fehlermeldung? Wir können hier nicht hellsehen...
Zudem sollte man Dateien immer so öffnen:
Code: Alles auswählen
with open(...) as handler:
# handler ist heir File-Objekt
# handler wird automatisch geschlossen
Re: Datei lesen und löschen unter Windwos
Verfasst: Dienstag 7. Februar 2012, 14:14
von koetom
Hallo nochmal,
also jetzt hab ich das mit with gemacht und so funktioniert es. Jetzt würde mich nur noch interessieren wieso das vorherige nicht funktioniert hat:
Code: Alles auswählen
....
daten=open(datei,"r")
for line in daten:
print(line)
daten.close()
os.remove(datei)
....
Die Fehlermeldung die da kam lautete: "Windows Error 32 Process can not access file because it is beeing used by another process"
Danke,
Tom
Re: Datei lesen und löschen unter Windwos
Verfasst: Dienstag 7. Februar 2012, 21:34
von BlackJack
@koetom: Bei *dem* Quelltext sollte das Problem nicht bestehen.
Re: Datei lesen und löschen unter Windwos
Verfasst: Mittwoch 8. Februar 2012, 07:49
von koetom
Hm, tut es aber. Ich hab es extra nochmal probiert. Was ich auch gemerkt habe, wenn ich in ein Dateiobjekt was schreibe wird das auch nicht direkt nach .close() geschrieben. Die Datei ist zwar vorhanden hat aber 0 Byte. Erst wenn das Skript komplett durch gelaufen ist und beendet wurde werden die Daten in die Datei geschrieben. Komisch komisch.
Re: Datei lesen und löschen unter Windwos
Verfasst: Mittwoch 8. Februar 2012, 08:19
von /me
koetom hat geschrieben:Hm, tut es aber. Ich hab es extra nochmal probiert. Was ich auch gemerkt habe, wenn ich in ein Dateiobjekt was schreibe wird das auch nicht direkt nach .close() geschrieben
Du hast auch ganz sicher
close() im Code stehen und nicht nur
close?
Re: Datei lesen und löschen unter Windwos
Verfasst: Mittwoch 8. Februar 2012, 08:22
von BlackJack
@koetom: Dann wurde die Datei nicht geschlossen. Das sind a) sehr grundlegende Operationen und b) nicht wirklich Python-spezifisch. Das `close()` wird ja nur an die entsprechende C-Funktion weiter gereicht.