Ce minuscule petit script supprime toutes les petites fonctionnalités de toutes les couches. Cela fonctionne bien mais la taille des fichiers .shp n'est pas réduite. S'il vous plaît dites-moi pourquoi...
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()
Vous devez vérifier la version de QGIS dans laquelle vous voyez cela.
Je sais que ce comportement a été modifié dans la version 2.14, de sorte qu'après avoir appelé deleteFeatures, un fichier de formes sera reconditionné pour supprimer toutes les lignes orphelines restantes.
Vous devriez tester à nouveau avec la version 2.14 et voir s'il y a une amélioration.
la source