I have hundreds of shapefiles that I have added to a QGIS project. I am using QGIS 3.0.0. I have created a new text field for each of them named 'Enumertr' in PyQGIS and I need to populate this field in each of the shapefiles with the name of the respective layer. I have the below script, but it is bringing an error. I also need to adapt it to iterate through all of the layers in my QGIS project. I am relatively new to Python but am hoping using PyQGIS will save me a substantial amount of time if I can finalise this script.
from PyQt4.QtCore import QVariant from qgis.core import QgsField, QgsExpression, QgsFeature vl = iface.activeLayer() vl.startEditing() idx = vl.lookupField(‘Enumertr’) e = QgsExpression (‘vl.name’) e.prepare(vl.fields()) for f in vl.getFeatures(): f[idx] = e.evaluate( f ) vl.updateFeature( f ) vl.commitChanges()