Forums Neueste Beiträge
 

Datei löschen. Speicher wird nicht freigegeben

07/09/2011 - 12:04 von Johannes Korn | Report spam
Hallo,

ich stelle gerade ein sehr komisches Verhalten fest. Ich habe ein
Script, das große Dateien umformatiert. Es werden temporàre Dateien
angelegt und wieder gelöscht.

Die Dateien verschwinden auch und ein "du" im betrefenden Verzeichnis
zeigt nur geringe Belegung an. Dennoch làuft das Dateisystem voll. Das
ist mit "df" nachvollziehbar. Sobald ich python oder ipython beende, ist
das Dateisystem wieder leer. Es ist egal ob das script direkt über
python script.py aufrufe oder in ipython laufen lasse.

Ich habe zwei Methoden getestet, die Dateien zu löschen.

command = 'rm ' + nc_dir + nc_file
os.system(command)

und

os.remove(nc_dir + nc_file)

Mit gleichem Ergebnis.

Python 2.7
 

Lesen sie die antworten

#1 Hartmut Goebel
07/09/2011 - 12:20 | Warnen spam
Am 07.09.2011 12:04, schrieb Johannes Korn:
Ich habe zwei Methoden getestet, die Dateien zu löschen.



M.E. ist das nicht die Stelle ist, an der das Problem liegt.

Anscheinend hàlt der Prozess irgendwo noch Dateien offen. Kann es sein,
dass Du die temporàren Dateien nicht schließt? Unter Unix hilft Dir
`lsof -p` die offenen Dateien zu finden.

command = 'rm ' + nc_dir + nc_file
os.system(command)



Um Dein Programm robuster zu machen, solltest Du die Variante mit
os.remove() verwenden. Außerdem möchtest Du os.path.join() verwenden.

Schönen Gruß - Regards
Hartmut Goebel
Dipl.-Informatiker (univ.), CISSP, CSSLP

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de

Monatliche Kolumne: http://www.cissp-gefluester.de/
Goebel Consult ist Mitglied bei http://www.7-it.de

Ähnliche fragen