Dieses winzige kleine Skript löscht alle kleinen Funktionen in allen Ebenen. Dies funktioniert gut, aber die Größe von .shp-Dateien wird nicht reduziert. Bitte erzähle mir warum...
canvas = iface.mapCanvas()
expr = QgsExpression("$length<100")
for l in canvas.layers():
l.startEditing()
it = l.getFeatures(QgsFeatureRequest(expr))
for ft in it:
l.deleteFeature(ft.id())
l.commitChanges()
Sie sollten die Version von QGIS überprüfen, in der Sie dies sehen.
Ich weiß, dass dieses Verhalten in Version 2.14 optimiert wurde, sodass nach dem Aufruf von deleteFeatures ein Shapefile neu gepackt wird, um alle verbleibenden verwaisten Zeilen zu entfernen.
Sie sollten mit Version 2.14 erneut testen und prüfen, ob Verbesserungen vorliegen.
quelle