Mehr

Speicherproblem? qgis Python-Verarbeitung wird nicht abgeschlossen


Ich habe einen einfachen Prozess, um einige Änderungen an allen Konturdateien in einem Verzeichnis vorzunehmen. Es läuft gut beim Test von 100 ungeraden Dateien, aber in einem Verzeichnis mit etwa 500 stoppt es nach etwa 120 Dateien.

Gibt es eine Möglichkeit, Speicher freizugeben, nachdem jede Datei verarbeitet wurde?

import processing, os, glob path=r'F:InputContours25_cm' outdir=r'F:OutputContours' os.chdir(path) für Datei in glob.glob("*.TAB"): filename=file[:-4] processing.runalg("modeler:contour_edits",filename+".tab",outdir+"contour_5m"+filename+"_5m.tab",outdir+"contour_25cm"+filename+ ".tab",outdir+"contour_1m"+Dateiname+"_1m.tab")

AKTUALISIERT ---

Importverarbeitung, os, glob, gc gc.enable path=r'F:DouglasInputContours25_cm' outdir=r'F:DouglasOutputContours' os.chdir(path) für Datei in glob. glob("*.TAB"): filename=file[:-4] processing.runalg("modeler:contour_edits",filename+".tab",outdir+"contour_5m"+filename+"_5m.tab",outdir+ "contour_25cm"+Dateiname+".tab",outdir+"contour_1m"+Dateiname+"_1m.tab") gc.collect() Dateiname drucken

Ausgabe von der Konsole

{u'OUTPUT_LAYER_ALGQGISFIELDCALCULATOR_1': 'F:DouglasOutputContourscontour_25cmpt000443_contour.tab', u'OUTPUT_ALGQGISEXTRACTBYATTRIBUTT_2': 'F:DouglasOutputContour_1mpt000m'44. 'F:DouglasOutputContourscontour_5mpt000443_contour_5m.tab'} pt000443_contour 107 {u'OUTPUT_LAYER_ALGQGISFIELDCALCULATOR_1': 'F:DouglasOutputContourscontour_25cm'OUTQab''AL DouglasOutputContourscontour_1mpt001062_contour_1m.tab', u'OUTPUT_ALGQGISEXTRACTBYATTRIBUTE_1': 'F:DouglasOutputContourscontour_5mpt001062_contour_5m.tab'} pt007062_contour_5m.tab'}

Wenn ich die Dateien in Batches von 30 in einem Verzeichnis aufteile und dies ausführe, funktioniert es gut, wenn der Batch 50 ist, schlägt es fehl. Wenn ich es ausführe, ohne qgis (nicht nur das Python-Fenster) neu zu starten, verarbeitet es die ersten 30 und verarbeitet möglicherweise einige der kleineren Dateien aus den nächsten 30, aber nicht alle. Also ich denke wirklich, es ist ein Speicherproblem???